【问题标题】:Porting PL/pgSQL stored procedures?移植 PL/pgSQL 存储过程?
【发布时间】:2012-01-12 16:16:22
【问题描述】:

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

这些是严格按顺序排列的,在某些情况下可能会非常慢。

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

主要问题是:这些语言支持如何“有效”地实现?例如,我正在考虑运行 Java 代码的虚拟机:当调用我的 PL/Java 代码时,每次它都会为它召唤一个新的 VM,或者 PL/Java 是否保留某种 VM 池,并关联一个实际通话?

【问题讨论】:

  • 什么是程序缓慢?这就是您要解决的问题,将问题移植到其他语言不会解决问题。

标签: multithreading postgresql stored-procedures pljava


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢大家,这几周我们正在汇总信息,然后再做出任何决定。你的 cmets 真的很有帮助!
猜你喜欢
  • 2013-05-29
  • 2023-04-01
  • 2010-11-29
  • 2011-01-17
  • 1970-01-01
  • 2011-12-15
  • 2010-12-23
  • 2012-03-11
  • 1970-01-01
相关资源
最近更新 更多