存储过程或视图

问题描述 投票:0回答:1

我正在比较在视图或存储过程中运行复杂的选择查询。

我听说当我将查询放入存储过程时,它将被预编译,这将减少运行时间,因为它会保存执行计划。

我没有尝试这两种方法,但我想知道哪种方法更好。

最佳实践是什么?

postgresql stored-procedures view precompile
1个回答
0
投票

PL/pgSQL 函数中的静态 SQL 语句(如果要返回数据,您必须谈论函数,而不是过程)可以在数据库会话期间缓存执行计划。这可以节省您在执行查询时计算执行计划的精力。

但是,如果查询成本很高,则规划时间将只占查询执行时间的一小部分,并且收益可以忽略不计。因此,如何做并不重要,我的建议是从应用程序或数据库维护的角度选择最方便的方法。

要亲自查看,请使用

EXPLAIN (ANALYZE)
运行查询。然后,您可以获得报告的查询计划时间和执行时间,并可以评估减少前者是否会对您的整体性能产生影响。

© www.soinside.com 2019 - 2024. All rights reserved.