2
爲了防止鎖和死鎖,我決定在我的視圖中使用表提示WITH(NOLOCK)
。readcommitted和nolock鎖衝突
這樣做效果很好,用戶對此感到滿意。
當應用程序(稱爲PIVOTAL的CRM應用程序)內部調用這些視圖時,問題就開始了。
當這個應用程序查詢我的視圖(其中有WITH(NOLOCK)
),它添加了一個不同的表鎖READCOMMITTED
。
例如:
select * from MY_view WITH(READCOMMITTED)
這樣做的結果是SQL Server錯誤消息告訴我的鎖衝突。
現在,我無法更改應用程序及其生成腳本的方式。
有沒有辦法讓SQL Server忽略My_view
之外的提示? 有沒有辦法讓NOLOCK
勝過READCOMMITTED
,這樣我就可以保持在My_View
之內?
感謝和問候。 Marcello
感謝這個Szymon,我正在考慮爲這個數據庫啓用快照隔離級別。 –