2016-04-05 7 views

答えて

1

PostgreSQLはすべてのテーブルの統計情報を保持します。それらはpg_statsビューで表示されます。

それは、これらの統計はによって維持されているなど、null値の割合だけでなく、最も一般的に発生値のヒストグラムなどの他の潜在的に有用な情報、

として、あなたは後にしている情報の少なくとも一部が含まれていますデータベース自体を使用してクエリの計画を支援します。

使用例:テーブル「foo」でヌルにし、個別値の数の割合を取得します。

ispdb_t1=> select tablename || '.' || attname as tablecolumn, null_frac, n_distinct from pg_stats where tablename='foo'; 
    tablecolumn | null_frac | n_distinct 
-------------------+-------------+------------ 
foo.name   |   0 |   -1 
foo.a    | 0.000785309 |   4 
foo.b    | 0.000241633 |   4 
foo.id   |   0 |   -1 
foo.d    |   0 |  553 
(6 rows) 
+0

特定のテーブル/スキームはpg_statsの下に表示されない理由の任意のアイデア?検索を試みて、それを有効にするために 'オンにする'フラグを見つけることができません – oshi2016

+1

おそらく、システムはまだテーブルを分析していませんでした。 'ANALYZE table'コマンドを実行してみてください。ここで、tableはテーブルの名前です。 – harmic

+0

が働いた!どうもありがとう – oshi2016