我们的DB (PostgreSQL 9.x)中有一些PL/pgSQL存储过程。
这些都是严格按顺序进行的,在某些情况下,可能会非常慢。
我们正在考虑将它们移植到PL/Java、PL/Python或类似的语言,并利用这些语言的多线程能力。
主要的问题是:这些语言支持是如何“有效”实现的?例如,我在考虑运行Java代码的虚拟机:当调用我的PL/Java代码时,每次它都会为它调用一个新的VM,或者PL/Java是否保留了某种VM池,并将其中一个与实际调用相关联?
发布于 2012-01-16 06:56:10
Pl/Java在嵌入postgres后端进程的jvm中运行。请参阅:PL/Java wiki
我建议你不要只是把所有的东西都翻译成java,而不是先看看纯SQL解决方案。在许多情况下,SQL批量处理大量记录的能力将超过单独处理记录的任何好处,但会导致更多的SQL调用。
如果任务本身是连续的,则Java的多线程功能不会带来任何好处。
https://stackoverflow.com/questions/8838377
复制相似问题