| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 41. 系統資料表 | Fast Forward | Next |
視圖 pg_stats 提供對儲存在 pg_statistic 資料表裡面的訊息的訪問。這個視圖允許我們只訪問那些在 pg_statistic 裡面對應用戶有權限讀取的資料表的資料行,因此我們可以安全地允許公眾訪問這個視圖。
pg_stats 也設計成把訊息以一種更易讀的方式出現的形式, 它比下層的系統資料表更容易閱讀 — 代價就是如果在 pg_statistic 裡定義了新的資料槽位,那麼我們必須擴展它的視圖定義。
Table 41-36. pg_stats 字串
| 名字 | 類型 | 引用 | 描述 |
|---|---|---|---|
| schemaname | name | pg_namespace.nspname | 包含此資料表的模式名字 |
| tablename | name | pg_class.relname | 資料表的名字 |
| attname | name | pg_attribute.attname | 這一行描述的字串的名字 |
| null_frac | real | 記錄中字串為空的百分比 | |
| avg_width | integer | 字串記錄以字元記的平均寬度 | |
| n_distinct | real | 如果大於零,就是在字串中獨立數值的估計數目。如果小於零,就是獨立數值的數目被行數除的負數。 (用負數形式是因為 ANALYZE 認為獨立數值的數目是隨著資料表增長而增長; 正數的形式用於在字串看上去好像有固定的可能值數目的情況下。)比如,-1 資料表示一個唯一字串,獨立數值的個數和行數相同 | |
| most_common_vals | anyarray | 一個字串裡最常用數值的列資料表。(如果看上去沒有啥數值比其它更常見,則為 NULL。) | |
| most_common_freqs | real[] | 一個最常用數值的頻率的列資料表,也就是說,每個出現的次數除以行數。 (如果 most_common_vals 是 NULL,則為 NULL) | |
| histogram_bounds | anyarray | 一個數值的列資料表,它把字串的數值分成幾組大致相同熱門的組。如果在 most_common_vals 裡有數值,則在這個餅圖的計算中省略。 (如果字串資料類型沒有 < 操作符或者 most_common_vals 列資料表代資料表了整個分佈性,則這個字串為 NULL。) | |
| correlation | real | 統計與字串值的實際行序和邏輯行序有關。它的範圍從 -1 到 +1。 在數值接近 -1 或者 +1 的時候,在字串上的索引掃瞄將被認為比它接近零的時候開銷更少,因為減少了對磁盤的隨機訪問。 (如果字串資料類型沒有 < 操作符,那麼這個字串為 NULL。) |
在 most_common_vals 和 histogram_bounds 數組裡的元素的最大數目可以用 ALTER TABLE SET STATISTICS 命令一個一個字串地設置, 或者透過設置執行時環境變量default_statistics_target 全局地設置。