pg_stats

PostgreSQL 9.1.1文書
前のページ | 巻戻し | 第 45章システムカタログ | 早送り | 次のページ

# 45.64. `pg_stats`

`pg_stats`ビューは`pg_statistic`カタログの情報にアクセスするためのビューです。 このビューは、ユーザが読み込み権限を持つテーブルに一致する`pg_statistic`の行に対してのみアクセスを許可しています。 よって、このビューに対して一般に読み込みを許可しても安全です。

`pg_stats`も、その基礎となっているカタログよりも、より読みやすい書式で情報を提供するように設計されています。 しかし、これは、もし`pg_statistic`に対して新しいスロット型が定義されるたびに、スキーマが拡張されなくてはならない、という犠牲を払っています。

表 45-65. `pg_stats`の列

名前 | 型 | 参照先 | 説明
--- | --- | --- | ---
`schemaname` | `name` | ``pg_namespace`.nspname` | テーブルを持つスキーマ名
`tablename` | `name` | ``pg_class`.relname` | テーブル名
`attname` | `name` | ``pg_attribute`.attname` | この行が記述する列名
`inherited` | `bool` |  | 真の場合、この行には指定されたテーブルの値だけではなく、継承関係の子の列が含まれます。
`null_frac` | `real` |  | NULLとなっている列項目の割合
`avg_width` | `integer` |  | 列項目のバイト単位による平均幅
`n_distinct` | `real` |  | ゼロより大きい値は列内の個別値の推定数です。 ゼロより小さければ行数で個別値を割算した数字の負数です。 （テーブルが肥大するにつれ固有値の増大があり得ると`ANALYZE`が判断した場合に負変換形式が使われます。 正変換形式は列の取り得る値が固定数を持つと思われる場合に使用されます）。 例えば-1は個別値の数が行数と等しいような、一意な列を表します。
`most_common_vals` | `anyarray` |  | 列の中の最も共通した値のリストです（他の値よりもより共通している値がない場合はNULLとなります）。 `tsvector`といったいくつかのデータ型に対して、これは型そのものの値よりも、最も共通の要素の値の一覧です。
`most_common_freqs` | `real[]` |  | 最も一般的な値、もしくは要素の出現頻度のリストで、つまり行の総数で出現数を割算した数字です（`most_common_vals`がNULLの時はNULLとなります）。 `tsvector`のようないくつかのデータ型のために、`most_common_vals`配列より長いような追加情報を保存することができます。
`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実行時パラメータで包括的に設定されるかのいずれかです。

前のページ | ホーム | 次のページ
`pg_shadow` | 上に戻る | `pg_tables`