8
這裏的交易:JDBC批量插入緩慢!我的意思是,真的很慢?
- 我創建一個使用
DriverManager
- 我設置
conn.autoCommit(false);
- 然後,我有
PreparedStatement pStat = conn.prepareStatement(insert_string_with_parameter);
- 我設置幾個參數與pStat.set連接
conn
...然後我添加批號pStat.addBatch();
- 每10000行(我撥打
addBatch()
10000次),我打電話pStat.executeBatch();
- 不知道是否需要的,但我也叫
pStat.clearBatch()
之後即使所有上述聽起來不錯,這是慢!。
我每秒平均只有35條記錄(總共只有8列,只有一個技術性的自動遞增主鍵和一些非空約束)。我計算,這將需要我一個星期的時間插入我所有的20M行...
我做錯了什麼?
我應該在每個批次循環中添加多少行? 10000太多了?
我當時也嘗試過1000行,但我沒有看到任何明顯的改進... – Gevorg
請顯示涉及的表上的SQL,模式並指示索引和觸發器。 – Bohemian
沒有索引,也沒有觸發器。這是有史以來最簡單的表...... – Gevorg