8
がここに取り引きです:JDBCの一括挿入が遅いです!本当に遅い?
- 私は
conn.autoCommit(false);
- を設定
DriverManager
- を使用して接続
conn
を作成それから私は私がpStat.setでいくつかのパラメータを設定しPreparedStatement pStat = conn.prepareStatement(insert_string_with_parameter);
- を持っている...そして私が追加します
pStat.addBatch();
- 10000行ごとに(私は
addBatch()
10000回を呼び出します)、私はpStat.executeBatch();
を呼び出します
- ない、必要に応じて確認してくださいしかし、私は右
後pStat.clearBatch()
も呼び出すことは私にはいいですねでも、上記のすべての場合、これはSLOWです!。
1秒あたり平均35レコード(計8列のみ、テクニカルオートインクリメントプライマリキーと非ヌル制約)があります。 20Mの行をすべて挿入するのに1週間かかると計算しています...
何か間違っていますか?
バッチサイクルごとに追加する行数はいくつですか? 10000が多すぎますか?
私は一度に1000行でも試してみましたが、私は任意の大幅な改善を見ていない... – Gevorg
は、SQLを表示するスキーマとテーブル(s)は、関係にあり、インデックスとトリガを記入してください。 – Bohemian
インデックスがなく、トリガーもありません。今までに一番簡単なテーブルです... – Gevorg