2008-12-08 17 views
1

我對託管在Microsoft SQL Server中的數據庫運行升級腳本。這需要一段時間。由於各種原因,一些查詢不值得進一步優化。單用戶:關閉Microsoft SQL Server的鎖定

我是唯一使用此數據庫的人:有沒有一種方法可以告訴SQL Server不打擾事務/鎖定?

例如,在DELETE ... WHERE上,SQL是否需要對它即將刪除的行取消排它鎖定?如果是這樣,我可以告訴它不要打擾,因爲這是唯一正在運行的查詢嗎?

回答

1

請參閱SQL Query Performance - Do you feel dirty? (Dirty Reads)

編輯:這只是猜測,但如果你是SQL Server的唯一連接,你可以使用WITH (TABLOCKX)在表級別獨佔鎖定。你犧牲了併發性,但它可能會變得更快。

+0

有用,所以我upvoted,但我實際上有問題的查詢是DELETE ... WHERE;我已經擴展了我的問題。 – 2008-12-08 12:13:50

+0

沒關係,因爲DELETE命令也允許你使用一些表提示,所以eed3si9n的WITH(TABLOCKX)可以工作。 – xahtep 2008-12-08 13:17:49

0

關閉自動提交(又名隱式交易);你需要在最後做一個commit()。日誌文件將相應增大,請確保您有足夠的磁盤空間。 tempdb是否在同一張磁盤上?