pg_stats ビューは pg_statistic カタログ内に格納されている情報へのアクセスを提供します。このビューはユーザが読み込みを許可されているテーブルに関連した pg_statistic 行のみアクセスを許可しますので、このビューに対する公開読み込みアクセスを許可することは危険でありません。
同時に pg_statistic に対して新規スロット型が定義されているときはそのスキーマは伸長されなければならないという代価を払ったとしても、pg_stats は裏にあるカタログよりもより読みやすい形式で情報を提供します。
表 43-35. pg_stats 列
名前 | 型 | 参照先 | 説明 |
---|---|---|---|
schemaname | name | pg_namespace.nspname | テーブルを持つスキーマ名 |
tablename | name | pg_class.relname | テーブル名 |
attname | name | pg_attribute.attname | この行が記述する列名 |
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 となります。) | |
histogram_bounds | anyarray | 列の値を満遍なく似たような数でグループに分配した値のリストです。most_common_vals の値がもし存在すればこの度数分布計算は行われません。(列データ型が < 演算子を所有しない場合、もしくは most_common_vals が全体の構成要素アカウントをリストしている場合、この列は NULL となります。) | |
correlation | real | 物理的な(訳注:ディスク上の)行の並び順と論理的な列の値の並び順に関する統計的相関です。この値は -1 から +1 の範囲です。値が -1 もしくは +1 の近辺にある時、ディスクにランダムアクセスする必要が少なくなるためこの列に対してのインデックススキャンは 0 近辺にある場合に比較して安価であると推定されます。(列データ型に < 演算子がない場合、この列は NULL となります。) |
most_common_vals および histogram_bounds 配列の最大エントリ数は ALTER TABLE SET STATISTICS コマンドで列毎に設定されるか、もしくは default_statistics_target 実行時パラメータで包括的に設定されるかのいずれかです。