2010-10-06 39 views
2

如何查找默認全局表鎖定提示?SQL Server 2005/2008上的默認表鎖提示


- 問題

  1. 是否有任何DMV/DMF(動態管理視圖/函數)返回這些信息呢?
  2. 此外,有沒有辦法改變默認的鎖提示?

目前我加入nolock暗示幾乎隨處可見,以防止鎖。
我想通過將默認鎖提示更改爲nolock來避免這樣做,以便現有的存儲過程不需要更改。

+0

這聽起來很奇怪 - 在db設計中是否有一些錯誤需要解決? – egrunin 2010-10-06 14:00:03

+0

我只是想看看存儲過程中是否缺少'nolock'提示是導致所有查詢超時的原因 – Sung 2010-10-06 14:02:33

回答

3

我不知道有任何這樣的全局設置。恕我直言,即使應該存在那裏可以沒有理由使用它。

但是,您可以設置隔離級別來控制單個事務是否能夠讀取其他事務所做數據的更改。這是通過

SET TRANSACTION ISOLATION LEVEL 
4

沒有全局設置。默認值是始終READ COMMITTED

它可以在

快照類型 table hints
  • 數據庫級別表

    NOLOCK無處不在misguided而且在這裏:

    編輯:有關查詢超時評論後...

    與NOLOCK查詢還可以消耗大量的CPU和IO資源。鎖定並不是什麼大問題。如果是這樣,那麼另一個查詢花費的時間太長,可能需要佔用大量的CPU和IO資源......

  • +0

    +1我不知道有時候NOLOCK可能會是一件非常糟糕的事情。讓我檢查不同的方法來驗證鎖定可能發生的位置。謝謝。 GBN。 – Sung 2010-10-06 14:37:10