小编sku*_*mar的帖子

EXPLAIN ANALYZE 不显示 plpgsql 函数内查询的详细信息

我在 PostgreSQL 9.3 中使用了一个 PL/pgSQL 函数,里面有几个复杂的查询:

create function f1()
  returns integer as
$$
declare

event tablename%ROWTYPE;
....
....

begin

FOR event IN
   SELECT * FROM tablename WHERE condition
LOOP
   EXECUTE 'SELECT f2(event.columnname)' INTO dummy_return;
END LOOP;

...

INSERT INTO ... FROM a LEFT JOIN b ... LEFT JOIN c WHERE ...

UPDATE T SET cl1 = M.cl1 FROM M WHERE M.pkcols = T.pkcols;

...

end
$$ language plpgsql;
Run Code Online (Sandbox Code Playgroud)

如果我跑了EXPLAIN ANALYZE f1(),我只会得到总时间,但没有细节。有没有办法可以获得函数中所有查询的详细结果?

如果函数中的查询不应该被 Postgres 优化,我也会要求解释。

postgresql optimization plpgsql functions explain

25
推荐指数
1
解决办法
2万
查看次数

标签 统计

explain ×1

functions ×1

optimization ×1

plpgsql ×1

postgresql ×1