我试图理解postgresql中的查询优化,我有一个函数,里面有一些查询。其中一些是简单的查询,可以将值保存到变量中,然后下一个查询将此变量用于查找内容..让我们说:
function()...
select type into t
from tableA
where code = a_c;
select num into n
from tableB
where id = t;
end function...
还有更多..如果我想解释分析整个函数我执行命令说明解析select function();这是正确的方法吗?或者我应该解释分析函数内的每个查询,如果是这样,用什么值?
答案 0 :(得分:4)
考虑使用auto_explain模块:
auto_explain模块提供了记录执行计划的方法 自动缓慢的语句,而不必运行EXPLAIN 手。这对于跟踪未优化的内容特别有用 在大型应用程序中查询。
开启了auto_explain.log_nested_statements
:
auto_explain.log_nested_statements (布尔值)
auto_explain.log_nested_statements导致嵌套语句 (在函数内执行的语句)将被考虑用于记录。 关闭时,仅记录顶级查询计划。这个参数 默认是关闭的。只有超级用户才能更改此设置。