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

PostgreSQLの大きなテーブルで削除クエリを実行する最速の方法

    このクエリに時間がかかる場合:

    delete from PlanItems p where p.jobId = :jobid
    

    および PlanItmes(jobId)にインデックスがあります --ここでjobId はインデックスの最初の列です。次に、他の問題を検討する必要があります。

    1. jobIdを使用するカスケード外部キー制約はありますか ?その場合、カスケードはそれらのテーブルに影響を与える可能性があります。カスケード削除の場合、これらの行を削除すると、より多くのテーブルに影響を与える可能性があります。

    2. テーブルに削除トリガーはありますか?もしそうなら、あなたの「単純な」削除はあなたが思っているよりもはるかに多くの仕事をしているかもしれません。

    3. システムに大きな負荷がかかっていませんか?もしそうなら、時間は単に行を削除する機会を待っているかもしれません。

    4. マテリアライズドビューはテーブル上に構築されていますか?もしそうなら、それらは更新されている可能性があります。

    これらのいずれにも当てはまらない場合は、経過時間を測定する方法に問題がある可能性があります。




    1. MYSQLデータベースからファイルをダウンロードする

    2. MySQLは列のデータ型をVARCHARからINTに変換します

    3. SQLServerへのデータファイルの一括挿入

    4. c#を使用したSQLServer挿入コマンドからの戻り値