1. 程式人生 > >PostgreSQL執行計劃(一)

PostgreSQL執行計劃(一)

    用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;