pg_statistic
#目錄 pg_statistic
儲存關於資料庫內容的統計資料。條目由 ANALYZE
建立,隨後由查詢規劃器使用。請注意,即使假設統計資料是最新的,所有統計資料本質上都是近似值。
通常,對於每個已經過分析的資料表欄位,會有一個 stainherit
= false
的條目。如果資料表有繼承子資料表或分割區,也會建立第二個 stainherit
= true
的條目。此列表示欄位在繼承樹上的統計資料,也就是說,使用 SELECT
可以看到的資料的統計資料,而 column
FROM table
*stainherit
= false
的列則表示 SELECT
的結果。column
FROM ONLY table
pg_statistic
也儲存關於索引表達式值的統計資料。這些資料被描述為如同它們是實際的資料欄位;特別是,starelid
參考了索引。但是,不會為普通的非表達式索引欄位建立條目,因為它會與底層資料表欄位的條目重複。目前,索引表達式的條目始終具有 stainherit
= false
。
由於不同種類的統計資料可能適合不同種類的資料,因此 pg_statistic
的設計並不假定它儲存了哪種類型的統計資料。只有非常一般的統計資料(例如空值)才在 pg_statistic
中給予專用欄位。其他所有內容都儲存在「槽 (slot)」中,這些槽是一組關聯欄位,其內容由槽中其中一個欄位的代碼數字識別。更多資訊請參閱 src/include/catalog/pg_statistic.h
。
公眾不應讀取 pg_statistic
,因為即使是關於資料表內容的統計資訊也可能被認為是敏感的。(範例:薪資欄位的最小值和最大值可能非常有趣。)pg_stats
是一個可公開讀取的 pg_statistic
檢視表,它僅公開關於當前使用者可讀取的資料表的資訊。
表 51.51. pg_statistic
欄位
欄位名稱 類型 描述 |
---|
描述的欄位所屬的資料表或索引 |
描述的欄位的編號 |
如果為 true,則統計資料包含來自子資料表的值,而不僅僅是指定關係中的值 |
欄位中為空值的條目的比例 |
非空條目的平均儲存寬度,以位元組為單位 |
欄位中不同的非空資料值的數量。大於零的值是不同值的實際數量。小於零的值是資料表中的列數的乘數的負數;例如,欄位中大約 80% 的值為非空值,並且每個非空值平均出現大約兩次,則可以用 |
一個代碼數字,指示儲存在 |
用於匯出儲存在第 |
用於推導儲存在第 |
適用於第 |
適用於第 |
如果您發現文件中有任何不正確、與您的特定功能使用經驗不符,或需要進一步澄清的地方,請使用此表單來回報文件問題。