国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-用戶手冊-19. SQL命令-EXPLAIN

2019-09-08 23:33:16
字體:
來源:轉載
供稿:網友
EXPLAIN
名稱
EXPLAIN ― 顯示語句執行細節 

語法
EXPLAIN [ VERBOSE ] query
輸入
VERBOSE 
顯示詳細查詢規劃的標志. 
query 
任何 query (查詢). 

輸出
NOTICE: QUERY PLAN: plan 
Postgres 后端顯式的查詢規劃. 
EXPLAIN 
查詢規劃顯示后發送的標志. 

描述
這條命令顯示 Postgres 規劃器為所提供的查詢生成的執行規劃。執行規劃顯示查詢引用的表是如何被掃描的--- 是簡單的順序掃描,還是索引掃描等 --- 并且如果引用了多個表,采用了什么樣的聯合算法從每個輸入的表中取出所需要的記錄。 
顯示出來的最關鍵的部分是預計的查詢執行開銷,這就是規劃器對運行該查詢所需時間的估計(以磁盤頁面存取為單位計量)。實際上顯示了兩個成分:返回第一條記錄前的啟動時間,和返回所有記錄的總時間。對于大多數查詢而言,關心的是總時間,但是,在某些環境下,比如一個 EXISTS 子查詢里,規劃器將選擇最小啟動時間而不是最小總時間(因為執行器在獲取一條記錄后總是要停下來)。同樣,如果你用一條 LIMIT 子句限制返回的記錄數,規劃器會在最終的開銷上做一個合理的折中以計算哪個規劃開銷最省。 

VERBOSE 選項輸出規劃樹在系統內部的完整內容,而不僅僅是一個概要(并且還把它發送給 postmaster 日志文件)。通常這個選項只是對調試 Postgres 有用。 

注意
在 Postgres 中只有很少的關于使用優化器的開銷的文檔.通常的關于查詢優化的開銷的估算可以在數據庫的手冊中找到.請參考 程序員手冊 中關于索引和基因查詢優化器的章節獲取更多信息.
用法
顯示一個對只有一個 int4 列和128行的表的簡單查詢的查詢規劃: 
EXPLAIN SELECT * FROM foo;
    NOTICE:  QUERY PLAN:

Seq Scan on foo  (cost=0.00..2.28 rows=128 width=4)

EXPLAIN
對同一個擁有支持查詢 equijoin 條件的索引的表,EXPLAIN 將顯示一個不同的規劃: 
EXPLAIN SELECT * FROM foo WHERE i = 4;
    NOTICE:  QUERY PLAN:

Index Scan using fi on foo  (cost=0.00..0.42 rows=1 width=4)

EXPLAIN
最后,同一個擁有支持查詢 equijoin 條件的索引的表,EXPLAIN 對使用一個聚集函數的查詢將顯示下面內容: 
EXPLAIN SELECT sum(i) FROM foo WHERE i = 4;
    NOTICE:  QUERY PLAN:

Aggregate  (cost=0.42..0.42 rows=1 width=4)
  ->  Index Scan using fi on foo  (cost=0.00..0.42 rows=1 width=4)
注意這里顯示的數字,甚至還有選擇的查詢策略都有可能在各個 Postgres 版本之間不同--因為規劃器在不斷改進。
兼容性
SQL92
在 SQL92 中沒有 EXPLAIN 語句.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 阜宁县| 宜君县| 丰县| 龙川县| 隆子县| 深泽县| 栾城县| 林芝县| 东海县| 上林县| 山丹县| 昔阳县| 濉溪县| 民县| 忻州市| 安阳市| 内黄县| 衡水市| 阿荣旗| 苍山县| 太仆寺旗| 米易县| 瑞昌市| 雷波县| 昌邑市| 乌兰察布市| 酒泉市| 青冈县| 普宁市| 庆阳市| 会东县| 化州市| 西和县| 桓仁| 西青区| 新民市| 建德市| 呈贡县| 定陶县| 襄城县| 永新县|