0

java.Presentlyを使用してpostgres dbテーブルから何千もの行を削除する最速の方法私は次のコードスニペットを使用しています:

query = "DELETE FROM NODE WHERE SEQUENCE_NO = " + sequenceNo;
            insertOrDelete(query);




insertOrDelete(String query){
    statement = createStatement();
    numRowUpdated = statement.executeUpdate(query);
    closeStatement(statement);
            }
4

3 に答える 3

2

これは Java の問題ではなく、データベースの問題です。

SEQUENCE_NO にインデックスがあることを確認してください。それを超えて、データベースの達人に尋ねてください (データベースによっては、パフォーマンスを改善できるものがあるかもしれませんが、最終的にはすべてデータベース管理にかかっています: SEQUENCE_NO の正しいデータ型を選択する、メタデータを最新に保つなど. )。

おそらく、質問に SQL タグを追加する必要があります。

于 2012-08-22T06:25:22.337 に答える
1

次のようなステートメントの作成を検討することをお勧めします

DELETE FROM NODE WHERE SEQUENCE_NO In (...);

これにより、複数回コミットするのではなく、1回のコミットで作業が実行され、どのような場合でもパフォーマンスが向上します。

于 2012-08-23T17:29:28.197 に答える
1

すでに単一のクエリを使用している場合、それが Java であろうと他のものであろうと、それほど高速になるとは思えません。

いくつかのヒント :

  • PreparedStatement を使用します。わずかに速くなる可能性があり、よりクリーン/安全/より優れたものになります
  • finally でステートメントを閉じる
于 2012-08-22T05:13:46.613 に答える