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;
내가 실행 EXPLAIN ANALYZE f1()
하면 총 시간 만 얻지 만 세부 정보는 얻지 못했습니다. 함수의 모든 쿼리에 대한 자세한 결과를 얻을 수있는 방법이 있습니까?
Postgres가 함수의 쿼리를 최적화하지 않아야하는 경우 설명도 요청합니다.
auto_explain.log_nested_statements
도움이 될 수 있습니다. 참조 postgresql.org/docs/9.3/static/auto-explain.html