統計ターゲットの設定は、列ごとにカタログテーブル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
によってこの列に蓄積された統計の詳細レベルを制御します 。ゼロ値は、統計を収集する必要がないことを示します。 負の値は、システムのdefaultstatisticsターゲットを使用することを示します。 正の値の正確な意味は、データ型によって異なります。スカラーデータ型の場合、attstattargetは、収集する「最も一般的な値」のターゲット数と、作成するヒストグラムビンのターゲット数の両方です。
太字 強調鉱山。
プレーンインデックス列の統計は列統計と同じであり、統計テーブルに個別のエントリはありません。ただし、Postgresはインデックスの式について個別の統計を収集します 。それらは同様の方法で微調整できます:
ALTER INDEX myschema.myidx ALTER COLUMN 1 SET STATISTICS 128;
実際の列名がない場合は、pg_attribute.attnum
に対応するインデックス列をアドレス指定するために序数が使用されます。 :
SELECT attstattarget
FROM pg_attribute
WHERE attrelid = 'myschama.myidx'::regclass
AND attnum = 1;
この設定は、次回ANALYZE
のときに列の統計にのみ実際に影響します 手動またはautovacuum
によって実行されています 。