簡體   English   中英

通過運行一次語句來獲取結果並解釋同時分析來自Postgresql的輸出

[英]Getting results and explain analyze output at the same time from Postgresql by running the statement once

有什么方法可以一次執行語句並獲得結果並解釋分析輸出嗎? 例如,我不想運行SQL,獲取結果,然后將EXPLAIN ANALYZE添加到語句的開頭並再次運行以進行解釋計划。 如果psycopg2軟件包中有東西,那就太好了。

一種方法-激活auto_explain並解析日志。 但是也許有一個更好的主意

如果您具有超級用戶訪問權限,則可以使用auto_explain在客戶端會話中獲取結果:

test=# LOAD 'auto_explain';
LOAD
test=# SET log_min_messages = PANIC;  -- don't log it
SET
test=# SET auto_explain.log_min_duration = 0;
SET
test=# SET auto_explain.log_analyze = on;
SET
test=# SET auto_explain.log_buffers = on;
SET
test=# SET client_min_messages = LOG;
SET
test=# SET SESSION AUTHORIZATION laurenz;
SET

test=> SELECT oid FROM pg_class WHERE relname = 'pg_class';
LOG:  duration: 0.040 ms  plan:
Query Text: SELECT oid FROM pg_class WHERE relname = 'pg_class';
Index Scan using pg_class_relname_nsp_index on pg_class  (cost=0.28..8.29 rows=1 width=4) (actual time=0.019..0.021 rows=1 loops=1)
  Index Cond: (relname = 'pg_class'::name)
  Buffers: shared hit=3
 oid  
------
 1259
(1 row)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM