我運行下面的命令來刪除分批行了一大桌(150萬行)的:刪除表中的行事業鎖具
DECLARE @RowCount int
WHILE 1=1
BEGIN
DELETE TOP (10000) t1
FROM table t1
INNER JOIN table2 t2 ON t2.PrimaryKey = t1.PrimaryKey
WHERE t1.YearProcessed <= 2007
SET @RowCount = @@ROWCOUNT
IF (@RowCount < 10000) BREAK
END
此表是使用頻率高的。但是,刪除記錄,但它也造成鎖定在一些記錄,從而引發錯誤給用戶(這是不是在我們的環境中接受)。
我怎麼能不引起鎖刪除舊的記錄?我應該將批量的大小從10000個記錄減少到1000個嗎?這將如何影響日誌大小(我們留下了較大的日誌增長非常小的硬盤空間)。
有什麼建議嗎?
這是在每批次或每行刪除的開始/結束? – Sean