pg_statsビューはpg_statisticカタログの情報にアクセスするためのビューです。このビューは、ユーザが読み込みの許可を持つテーブルに一致するpg_statisticの行に対してのみアクセスを許可しています。よって、このビューに対して一般に読み込みを許可しても安全です。
pg_statsも、その基礎となっているカタログよりも、より読みやすい書式で情報を提供するように設計されています。—しかし、これは、もしpg_statisticに対して新しいスロット型が定義されるたびに、スキーマが拡張されなくてはならない、という犠牲を払っています。
表 44-53. 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の時は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実行時パラメータで包括的に設定されるかのいずれかです。