sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLで統計ターゲットを確認する

    統計ターゲットの設定は、列ごとにカタログテーブル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によって実行されています 。



    1. MySQLで2つのタイムスタンプの差を計算する方法

    2. PostgreSQLの日付と時刻の関数

    3. max_connectionsのようなパラメーター(postgresql.conf設定)を照会します

    4. SQLiteでNULLを「N/A」に置き換える3つの方法