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