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

PostgreSQLのSQLJOIN-WHERE句とON句の実行プランが異なる

    のようなインデックスを追加したら、アイデアをありがとうございます
    CREATE INDEX t3_t1_nr ON t3(t1_nr);
    

    「悪い」-ステートメントは少し改善されます。

    しかし、私たちの最終的な解決策は、このテーブルについて収集された統計を増やすことでした:

    ALTER TABLE t1 ALTER COLUMN t1_nr SET STATISTICS 10000;
    ALTER TABLE t2 ALTER COLUMN t2_nr SET STATISTICS 10000;
    ALTER TABLE t3 ALTER COLUMN t1_nr SET STATISTICS 10000;
    
    ANALYZE t1;
    ANALYZE t2;
    ANALYZE t3;
    

    この変更後、両方のSELECTの実行時間はほぼ同じになります。詳細については、 https://www.postgresql.org/docs/12/planner-stats.html




    1. AWSGlue-挿入する前に宛先postgresテーブルを切り捨てます

    2. Oracleでディレクトリを作成する方法は?

    3. テーブルを書くためのSQLステートメント?

    4. 暗号化されたパスワードでPDO接続しますか?