postgres explain查看sql執行計劃參考

EXPLAIN [ ( option [, ...] ) ] statement
EXPLAIN [ ANALYZE ] [ VERBOSE ] statement
explain 後面可以跟的選型有:
ANALYZE [ boolean ] -- 執行statement, 得到真實的運行時間以及統計信息.
VERBOSE [ boolean ] -- 輸出詳細信息, 如列,schema,trigger等信息. 默認關閉.
COSTS [ boolean ] -- 輸出根據成本因子計算得出的cost值, 默認打開.(分爲該節點輸出第一行前的成本以及輸出所有行的成本.)
BUFFERS [ boolean ] -- 輸出本次QUERY shared/local/TEMP blocks的信息. The number of shared blocks hit, read, dirtied, and written, the
number of local blocks hit, read, dirtied, and written, and the number of temp blocks read and written.
包括命中/未命中讀數據塊, 產生的髒數據塊, 寫出了多少QUERY開始前的髒數據塊. (需打開analyze, TEXT模
式只輸出非0項, "計數包含所有子節點的計數".)
TIMING [ boolean ] -- 輸出每個節點的真實的時間開銷, 總時間不包含網絡開銷,parser,rewriter,planer開銷, (需打開analyze)
FORMAT { TEXT | XML | JSON | YAML } -- 輸出格式, 默認TEXT.
注意:對於analyze的使用, 會真的執行被評估的SQL, 如果是執行DML, 可以放在事務中使用並回滾事務:
BEGIN;
EXPLAIN ANALYZE QUERY;
ROLLBACK;

FORMAT { TEXT | XML | JSON | YAML } -- 輸出格式, 默認TEXT.
explain (analyze,verbose,buffers,costs,timing) select id1 from t_info10 where id1<10;
explain (analyze,verbose,buffers,costs,timing,format json) select id1 from t_info10 where id1<10;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章