6

我正在尝试了解 postgresql 中的查询优化,并且我有一个包含一些查询的函数。其中一些是简单的查询,将一个值保存到一个变量中,然后下一个查询使用这个变量来查找一些东西。让我们说:

 function()...
select type into t
from tableA
where code = a_c;

select num into n
from tableB
where id = t; 
end function...

还有更多.. 如果我想解释分析整个函数,我执行命令 explain analyze select function(); 这是正确的方法还是我应该解释分析函数内的每个查询,如果是这样,用什么值?

4

1 回答 1

5

考虑使用auto_explain模块:

auto_explain 模块提供了一种自动记录慢速语句执行计划的方法,而无需手动运行 EXPLAIN。这对于跟踪大型应用程序中未优化的查询特别有用。

打开auto_explain.log_nested_statements

auto_explain.log_nested_statements(布尔值)

auto_explain.log_nested_statements 导致考虑记录嵌套语句(在函数内执行的语句)。关闭时,仅记录顶级查询计划。该参数默认关闭。只有超级用户可以更改此设置。

于 2015-05-30T14:37:55.430 回答