2025年9月25日: PostgreSQL 18 釋出!
支援版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4

53.29. pg_stats #

檢視 pg_stats 提供了對 pg_statistic 目錄中儲存的資訊的訪問。此檢視僅允許訪問屬於使用者有權讀取的表的 pg_statistic 中的行,因此允許公共讀取此檢視是安全的。

pg_stats 的設計也旨在比底層目錄提供更易讀的格式來呈現資訊——代價是每當為 pg_statistic 定義新的槽型別時,其模式都必須進行擴充套件。

表 53.29. pg_stats

列 型別

描述

schemaname name (引用 pg_namespace.nspname)

包含表的模式名稱

tablename name (引用 pg_class.relname)

表名

attname name (引用 pg_attribute.attname)

此行描述的列名

inherited bool

如果為真,則此行包含來自子表的值,而不僅僅是指定表中的值

null_frac float4

列條目中為 NULL 的比例

avg_width int4

列條目的平均位元組寬度

n_distinct float4

如果大於零,則表示列中不同值的估計數量。如果小於零,則表示不同值的數量除以行數的負值。(當 ANALYZE 認為不同值的數量可能會隨著表的增長而增加時,使用負數形式;當列具有固定可能值時,使用正數形式。)例如,-1 表示一個唯一列,其中不同值的數量與行數相同。

most_common_vals anyarray

列中最常見值的列表。(如果沒有值似乎比其他值更常見,則為 NULL。)

most_common_freqs float4[]

最常見值的頻率列表,即每個值出現的次數除以總行數。(當 most_common_vals 為 NULL 時,此欄位也為 NULL。)

histogram_bounds anyarray

將列的值劃分為大致相等人口數量的組的值列表。(如果列資料型別沒有 < 運算子,或者 most_common_vals 列表佔用了整個人口數量,則此列為 NULL。)

correlation float4

物理行順序與列值邏輯順序之間的統計相關性。範圍從 -1 到 +1。當該值接近 -1 或 +1 時,基於該列的索引掃描的成本將被估計得比接近零時更低,因為可以減少磁碟的隨機訪問。(如果列資料型別沒有 < 運算子,則此列為 NULL。)

most_common_elems anyarray

列值中最常出現的非 NULL 元素值的列表。(標量型別為 NULL。)

most_common_elem_freqs float4[]

最常見元素值的頻率列表,即包含給定值至少一次的行的比例。在每個元素頻率之後會附加兩個或三個額外的值;這些是前面元素頻率的最小值和最大值,以及可選的 NULL 元素的頻率。(當 most_common_elems 為 NULL 時,此欄位也為 NULL。)

elem_count_histogram float4[]

列值中不同非 NULL 元素值的計數的直方圖,後面跟著不同非 NULL 元素的平均數量。(標量型別為 NULL。)

range_length_histogram anyarray

範圍型別列的非空且非 NULL 的範圍值的長度的直方圖。(非範圍型別為 NULL。)

此直方圖是使用 subtype_diff 範圍函式計算的,無論範圍邊界是否包含。

range_empty_frac float4

列條目中值為空範圍的比例。(非範圍型別為 NULL。)

range_bounds_histogram anyarray

非空且非 NULL 的範圍值的下界和上界的直方圖。(非範圍型別為 NULL。)

這兩個直方圖被表示為一個單一的範圍陣列,其下界表示下界的直方圖,上界表示上界的直方圖。


陣列欄位的最大條目數量可以透過每列使用 ALTER TABLE SET STATISTICS 命令來控制,或者透過設定 default_statistics_target 執行時引數來全域性控制。

提交更正

如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。