【发布时间】:2026-01-19 22:20:05
【问题描述】:
我正在尝试了解 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();这是正确的方法还是我应该解释分析函数内的每个查询,如果是这样,用什么值?
【问题讨论】:
-
如果您对每个单独的查询进行“解释分析”,您将能够查看是否可以优化特定查询。不确定它在功能层面上是如何工作的,以及它是否有意义。
-
您可以将函数体放入
PREPARE thing (arg1, arg2, ...) AS ... original body ...;并使用explain analyze execute thing (args);调用它 -
@wildplasser 体内的声明语句有错误,如果我不声明它们,我会收到此错误:无法准备实用程序语句
-
注意:问题中没有“声明声明”。 (并且 SQL 中没有 declare 语句)
标签: sql postgresql postgresql-9.4