2013-02-22 3 views
12

私は検索しましたが、これに対する簡単で簡単な答えは見つかりませんでした。 ANALYZEで使用されている現在の統計ターゲットを確認するにはどうすればよいですか?PostgreSQLの統計情報のターゲットを確認してください

+0

ないPostgreSQLのタグが追加された理由...私はそれはPostgreSQLの-9.2タグによって暗示されたと思ってくださいを収集されている現在の統計のクリーンなビューを提供します。 – jpmc26

+1

これは一般的なことです。PostgreSQLのすべてが[PostgreSQL]というタグの下にリストされています。 –

+1

検索のため、言い換えれば:統計の入手方法または統計ターゲットの表示方法。 –

答えて

17

統計ターゲットの設定は、カタログ表pg_attributeの列ごとに格納されます。あなたはこのようにそれを設定することができます。

ALTER TABLE myschama.mytable ALTER mycolumn SET STATISTICS 127; 

そして、このようにそれを確認してください。

SELECT attstattarget 
FROM pg_attribute 
WHERE attrelid = 'myschama.mytable'::regclass 
AND attname = 'mycolumn'; 

それともあなただけの価値がある場合は、それが追加されpgAdminで、のオブジェクトブラウザで作成スクリプトを見てdefault_statistics_targetのデフォルトとは異なります。

私はattstattargetにマニュアルを引用:

attstattargetはANALYZEによってこの列に 蓄積された統計情報の詳細レベルを制御します。ゼロ値は、統計 が収集されないことを示します。 負の値は、システムのデフォルトの 統計ターゲットを使用することを示します。正の値の正確な意味は、データタイプ です。スカラーデータ型の場合、attstattargetは収集する最も一般的な値の のターゲット番号と作成するターゲットの 個のターゲットの両方です。

太字強調。

+0

うん。私はあなたがリンクしているドキュメントを見ることを知っていたはずです。ごめんなさい;私は私のコメントを削除しました。この質問のポイントまで、私の検索の中には、インデックスの統計がいくつかあるかもしれないことが示唆されています。そこにすぐにはっきりと分からないことがあります。そして、ありがとう。 – jpmc26

+0

@ jpmc26:私はインデックスの列に対して明示的な統計ターゲットを使用したことはありません。今までは、テーブルの列の統計を調整するためにのみ使用しました。 –

1

これは

SELECT attrelid::regclass, attname, attstattarget FROM pg_attribute WHERE attstattarget >= 0 order by attstattarget desc; 
関連する問題