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