我的問題是我需要從表中刪除大約60M記錄,而不會導致使用此表的其他進程造成死鎖。在這一點上,我幾乎完成了使用while循環來移除記錄,該循環每次只能處理大約1M個記錄,但它需要整天進行。SQL Server 2005高效刪除
Q1:從表中刪除大量數據,使表保持在線狀態並最小限度地影響其他需要在MS SQL Server 2005中使用此表的資源的最佳方式是什麼?
問題2:有沒有像Oracle中那樣在SQL Server中實現單個行鎖定(而不是表鎖定)的方法? (注意回答此問題可能會回答Q1)。
A2:就像@Remus Rusanu通知我,有一種方法可以用row level locking進行刪除。
我喜歡它。下一次,我必須做這樣的事情不得不給這個鏡頭。 – 2010-01-04 21:07:42
我們最初計劃將記錄保留到新表中。然而測試表明,從頭開始重建索引的時間太長了。 – 2010-01-04 21:10:22
我經常這樣做,它的作用就像一個魅力。比刪除大量的行要好得多。 – 2010-01-04 21:10:29