SqlServer極速刪除百萬級別數據


百萬級別數據表,進行有條件的數據刪除,這個時候采用delete from的一次性刪除的方法是很不明智的:

1、delete操作會被完整記錄到日志里,它需要大量空間和時間

2、如果刪除中間發生中斷,一切刪除會回滾(在一個事務里)

3、同時刪除多行,記錄上的鎖也許會被提升為排它表鎖,從而阻礙操作完成之前有對這個表的操作(有時候會妨礙正常的業務)所以一般采取分批刪除的方法

所以,通過分批次地刪除數據可以大大提升刪除效率,縮短刪除時間:

declare @perCount int; 
set @perCount = 6000;
while 1=1
begin
    delete top(@perCount) fromwhere CrtDate < '2020-12-23';
    if(@@rowcount<@perCount) break;
end

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM