pg_stats
pg_stats
ビューはpg_statistic
カタログの情報にアクセスするためのビューです。
このビューは、ユーザが読み込み権限を持つテーブルに一致するpg_statistic
の行に対してのみアクセスを許可しています。
よって、このビューに対して一般に読み込みを許可しても安全です。
pg_stats
も、その基礎となっているカタログよりも、より読みやすい書式で情報を提供するように設計されています。
しかし、これは、もしpg_statistic
に対して新しいスロット型が定義されるたびに、スキーマが拡張されなくてはならない、という犠牲を払っています。
表51.89 pg_stats
の列
名前 | 型 | 参照先 | 説明 |
---|---|---|---|
schemaname | name |
| テーブルを持つスキーマ名 |
tablename | name |
| テーブル名 |
attname | name |
| この行が記述する列名 |
inherited | bool | 真の場合、この行には指定されたテーブルの値だけではなく、継承関係の子の列が含まれます。 | |
null_frac | real | NULLとなっている列項目の割合 | |
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の近辺にある時、ディスクにランダムアクセスする必要が少なくなるためこの列に対してのインデックススキャンは0近辺にある場合に比較して安価であると推定されます。
(列データ型に< 演算子がない場合、この列はNULLです)。
| |
most_common_elems | anyarray | 列の値の中で最もよく出現する非NULLの要素値のリストです。(スカラ型の場合はNULLです。) | |
most_common_elem_freqs | real[] |
最も一般的な要素値の出現頻度のリストで、与えられた値の少なくとも1つのインスタンスを含む行の断片です。
2つもしくは3つの追加の値が1つの要素ごとの出現頻度に続きます。
最小で最大の要素ごとの出現頻度があります。さらにオプションとしてNULL要素の出現頻度もあります。
(most_common_elems がNULLの時はNULLです。)
| |
elem_count_histogram | real[] | 列の値でNULLではない要素値の個別数のヒストグラム。これは個別のNULLではない平均値が後に続きます。(スカラ型の場合はNULLです。) |
配列の最大項目数はALTER TABLE SET STATISTICS
コマンドで列ごとに設定されるか、もしくはdefault_statistics_target実行時パラメータで包括的に設定されるかのいずれかです。