2010-10-06 28 views
0

我正在開發具有批處理功能的ETL應用程序。更新的併發性很低(即沒有)。我想避免粒度鎖的開銷,並通過鎖定整個表來鎖定升級。爲存儲過程中的所有語句設置鎖定粒度 - Microsoft SQL Server 2000

我想避免在每個語句中指定TABLOCK。有什麼辦法可以在存儲過程的頂部設置鎖定粒度,以便每個語句自動獲取每個使用的表上的表鎖?共享或排他並不重要,但共享是首選; ETL將在夜間運行,不會有特別的查詢負載,並且在ETL完成時觸發一批報告之前。

謝謝!

回答

0

你需要看看Transaction Isolation Levels

說實話,雖然,我不明白爲什麼你需要做什麼。我原以爲SQL Server會自己完成一個足夠好的鎖定工作。

+0

我害怕沒有選擇。隔離級別不會直接影響粒度,但如果我使用序列化,它將使用範圍鎖定,但無法確定這些範圍的粒度。我試圖優化超越「足夠好」。對我來說,值得在存儲過程中放置​​一條SET語句,但不要在每條語句中都加上表格提示。 – alyssackwan 2010-10-06 15:23:25

相關問題