移植PL / pgSQL存储过程?

时间:2012-01-12 16:16:22

标签: multithreading postgresql stored-procedures pljava

我们的DB(PostgreSQL 9.x)中有一些PL / pgSQL存储过程。

这些是严格顺序的,在某些情况下,可能会很慢。

我们正在考虑将这些移植到PL / Java,PL / Python或类似的东西,并利用这些语言的多线程功能。

主要问题是:如何有效地"这些语言支持是否实现?例如,我正在思考运行Java代码的虚拟机:在调用我的PL / Java代码时,每次为它召唤一个新VM,或者PL / Java是否保留某种VM代码,以及将其中一个与实际通话联系起来?

1 个答案:

答案 0 :(得分:3)

Pl / Java在postgres后端进程中嵌入的jvm中运行。请参阅:PL/Java wiki

我建议你不要在没有首先查看纯SQL解决方案的情况下将所有内容翻译成java。在许多情况下,SQL批量处理大量记录的能力将超过单独处理记录的任何好处,但会导致更多的SQL调用。

如果任务本质上是顺序的,那么Java的多线程功能不会带来好处。