【发布时间】:2010-01-26 18:19:45
【问题描述】:
我们对 Postgres 还是很陌生,并且来自 Microsoft Sql Server。
我们现在想写一些存储过程。好吧,在努力让比hello world 更复杂的东西在 pl/pgsql 中工作之后,我们决定如果我们要学习一门新语言,我们不妨学习 Python,因为我们在其中使用相同的查询大约 15 分钟(注意,我们中没有人真正了解 python)。
因此,与 pl/psql 相比,我对它有一些疑问。
- pl/Pythonu 是否比 pl/pgsql 慢?
- 对于如何使用它编写好的存储过程,是否有任何“好的”参考? Postgres 文档中的五个短页并不能真正告诉我们足够的信息。
- 查询准备如何?应该一直使用吗?
- 如果我们将 SD 和 GD 阵列用于大量查询计划,它是否会变得太满或对服务器产生负面影响?如果太满,它会自动删除旧值吗?
- 它有希望成为一种受信任的语言吗?
此外,我们的存储过程使用非常少。目前我们只有 4 个,但我们仍在尝试从 Sql Server 特定语法转换少量代码(例如变量,不能在存储过程之外的 Postgres 中使用)
【问题讨论】:
-
你为什么要这么努力地写存储过程?为什么不用 Python 编写普通的应用程序,将数据库用作普通的数据存储?
-
因为我们已经编写了超过 10,000 行 C# 代码。还有一些事情,如果我们完全在应用程序中完成,则需要 3 次或更多次往返 DB 服务器,所以我们宁愿只进行 1 次往返,而 DB 服务器会做一点额外的处理
-
@earlz:请用其他事实更新您的问题。请不要评论您自己的问题。这是你的问题。请完成它,以便其他人也可以从中学习。
-
@earlz:与其使用存储过程来减少往返次数,不如获取更多行并在数据库外进行更多处理。您会发现它通常比存储过程快得多。存储过程不是一种美德——它们通常是维护的噩梦。为什么要这么努力?
-
你有任何确凿的证据表明我不应该使用存储过程吗?这一切都无关紧要。我不是在问我是否应该使用存储过程。而且您不知道我们的应用程序是如何工作的,那么您如何判断存储过程是否对它不利?
标签: python postgresql stored-procedures plpgsql