11

我们对 Postgres 还很陌生,并且来自 Microsoft Sql Server。

我们现在想写一些存储过程。好吧,在努力获得比hello world在 pl/pgsql 中工作更复杂的东西之后,我们决定如果我们要学习一门新语言会更好,我们不妨学习 Python,因为我们在大约 15 分钟内得到了相同的查询(注意,我们中没有人真正了解python)。

因此,与 pl/psql 相比,我对它有一些疑问。

  1. pl/Pythonu 是否比 pl/pgsql 慢?
  2. 对于如何使用它编写好的存储过程,是否有任何“好的”参考?Postgres 文档中的五个短页并不能真正告诉我们足够的信息。
  3. 查询准备呢?应该一直使用吗?
  4. 如果我们在很多查询计划中使用 SD 和 GD 数组,它是否会变得太满或对服务器产生负面影响?如果太满,它会自动删除旧值吗?
  5. 它是否有希望成为一种值得信赖的语言?

此外,我们的存储过程使用非常轻。现在我们只有 4 个,但我们仍在尝试从 Sql Server 特定语法转换少量代码(例如变量,不能在存储过程之外的 Postgres 中使用)

4

1 回答 1

9
  1. 取决于你在做什么操作。
  2. 好吧,将它与一般的 Python 文档结合起来,这就是你所拥有的。
  3. 不,再次,取决于你在做什么。如果您只打算运行一次查询,那么单独准备它是没有意义的。
  4. 如果您使用持久连接,它可能会。但是只要连接关闭,它们就会被清除。
  5. 不见得。沙盒在 Python 中被破坏了,AFAIK 没有人真正有兴趣修复它。我听说有人说 python-on-parrot 可能是最可行的方法,一旦我们有了 pl/parrot(我们还没有)。

但底线 - 如果您的存储过程要进行数据库工作,请使用 pl/pgsql。仅当您要做非数据库的事情时才使用 pl/python,例如与外部库交谈。

于 2010-01-26T19:48:55.473 回答