मैं 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()
, तो मुझे केवल कुल समय मिलता है, लेकिन कोई विवरण नहीं। क्या कोई तरीका है जिससे मुझे फ़ंक्शन के सभी प्रश्नों के लिए विस्तृत परिणाम मिल सकते हैं?
यदि समारोह में प्रश्नों को पोस्टग्रेज द्वारा अनुकूलित नहीं किया जाना चाहिए, तो मैं स्पष्टीकरण भी मांगूंगा।
auto_explain.log_nested_statements
मदद हो सकती है। देखें postgresql.org/docs/9.3/static/auto-explain.html