1
在我的應用程序中,我有一個包含大約200K條記錄的表,我需要在數據庫中進行更新。我認爲更快的方法是刪除數據庫中的所有匹配記錄並插入它們,而不是檢查每條記錄是否存在數據庫中的匹配記錄,然後插入或更新。我正在使用Spring JDBC框架。 要刪除,我用的JdbcTemplate BATCHUPDATE方法有ParameterizedPreparedStatementSetter沿和插入我使用SimplJdbcInsert。 插入工作正常,但是,批量刪除性能非常緩慢。 我不太確定採取什麼其他方法來刪除數據庫中的記錄並插入它們。任何建議都會非常有幫助。我使用SQL Server 2008 R2的Spring JDBC - 批量刪除和插入
ParameterizedPreparedStatementSetter<Order> vSetter =
new ParameterizedPreparedStatementSetter<Order>() {
@Override
public void setValues(PreparedStatement ps,
Order order) throws SQLException {
ps.setInt(1, order.getOrderNum());
}
};
getJdbcTemplate().batchUpdate("DELETE FROM Order WHERE OrderNum = ?",
aDemandOrders,
50000,
vSetter);
我建議使用['MERGE'](http://msdn.microsoft.com/en-us/library/bb510625.aspx)而不是刪除然後插入。 –
我最終做了更新並基於更新計數執行了插入操作。幫助提高了性能 – user320587