2012-03-01 158 views
0

我想刪除SQL Server 2005表(大約80百萬條記錄)上的大量數據。如果沒有,說明begin tran,我寫我刪除查詢像在SQL Server中停止刪除操作

Delete from myTable 
where columnA > X' 

其中columnA不表的主鍵。它已經從4小時前開始,並且還沒有完成。我在一個類似的情況下測試了類似的行數和類似的情況,並且在大約70分鐘內完成了操作,但同時主服務器功能更強大,但花費了4個小時後它並沒有停止。該數據庫已配置爲提供Full recovery模型。

我想知道我是否可以通過殺死相應進程的SPID來阻止這個永無止境的操作,如果我這樣做了,會發生什麼? sql服務器會開始回滾操作嗎?數據庫會被暫停嗎?解決辦法是什麼?

回答

2

是,服務器會回滾刪除操作,

這樣的回滾通常採取的時間來完成,比以前的時間花在操作。

數據庫不會被掛起,但鎖定表將一直保持到回滾完成。