2012-11-30 61 views
-1

我有兩個表table1和table2,並使用一個列上的內部連接來連接它們。 子表有可能有超過5000萬的記錄。 花了30分鐘,使用spring jdbc update()刪除了1700萬條記錄。 是否有減少刪除時間的優化方法。使用彈簧刪除批量記錄jdbc

回答

1

使用 批更新與一些可操作的批量大小,例如。 5000.

編輯:該問題可能不是在春季jdbc,但在您的查詢。

這會適合你嗎?

DELETE 
    res 
FROM 
    RESULT res 
INNER JOIN 
    POSITION pos 
    ON res.POSITION_ID = pos.POSITION_ID 
WHERE 
    pos.AS_OF_DATE = '2012-11-29 11:11:11' 

這將從RESULT表中刪除條目。簡化SQL小提琴演示:http://www.sqlfiddle.com/#!3/4a71e/15

+0

如果您從您的應用程序添加一些代碼,我可以編寫一個示例。 – heikkim

+0

你可以exaplin如何使用batchupdate? – user1828964

+0

this.getJdbcTemplate()。update(DELETE_RESULT_QUERY,asOfDate); – user1828964