PostgreSQL執行計劃(一)
阿新 • • 發佈:2018-12-11
用explain命令顯示SQL的執行計劃,命令格式如下:
explain [option] statement;
其中,option是命令的可選選項,包括:
analyze | boolean | 通過實際執行SQL獲得相應的執行計劃 |
verbose | boolean | 顯示執行計劃的附件資訊 |
costs | boolean | 顯示計劃節點的啟動成本,總成本,估計行數和每行寬度 |
buffers | boolean | 顯示緩衝區使用的資訊(只能與analyze一起使用) |
format | text | xml | json | yaml | 指定輸出格式 |
1.基本執行計劃
explain select * from "Family1" where "ID" <4;
(1)Seq Scan on "Family1" 表示順序掃描表Family1。
(2)cost=0.00..16.63 中 0.00表示返回第一行的時間(啟動時間),16.63表示返回所有資料的時間(執行時間)。
(3)rows=177 表示會返回177行。
(4)width=124 表示每行平均寬度為124位元組。
2.analyze
加上引數analyze,可以通過實際執行SQL語句獲得更精確的執行計劃。
explain analyze select * from "Family1" where "ID" <4;
actual time=0.483..0.484 rows=2 loops=1 實際啟動時間0.483,執行時間0.484 返回行數2。
3.buffer
聯合使用analyze 和buffers,通過執行來檢視實際代價和緩衝區命中的情況。
explain (analyze true,buffers true) select * from "Family1" where "ID" <4;
Buffers: shared hit=1 共享記憶體中直接讀到1個塊。
4. format
指定輸出的執行計劃為json格式。
explain (format json) select * from "Family1" where "ID" <4;