【发布时间】:2016-06-28 07:37:51
【问题描述】:
这是一个 Postgres 特定的问题。我正处于经典设计情况的中间,我必须决定是使用存储过程还是动态 SQL(准备好的语句)。我已经阅读了很多关于相同内容的博客,并得出结论,在当前高级数据库系统的实现中,没有任何特定的属性可以相互权衡。 因此我的问题是 Postgresql 特定的。
What I want to ask is, are there advantages or disadvantages of using Stored Procedures in Postgres?
关于我的设计的更多信息:由于我们正在使用 Postgres 特定的函数(如 width_bucket)并依赖 Postgres 提供的各种其他东西(如 Partitioning 和 Inheritance),因此我们将来不太可能切换到任何其他数据库提供程序。我们的查询将是复杂的查询,涉及从实时/非实时数据构建图形和报告。 还会建立一些分析。此外,我们还将计划对数据库进行分片和分区。 我想要关于使用存储过程和我上面描述的系统和环境类型的观点,特定于 Postgresql。 我还想了解 Postgres 中查询优化和执行的工作原理。
【问题讨论】:
-
两者都用?双方各有利弊,都不是灵丹妙药。我从来没有在一个不需要存储过程的应用程序上工作过,但是通过 id 选择对于存储过程来说完全是多余的......
标签: database postgresql stored-procedures