SELECT * FROM dbo.Table_1 WITH(NOLOCK)
這樣就可以不用等待,但數據讀的是被鎖之前的數據,表被鎖了,肯定會有對表的update,delete操作。
如果對數據的准確性,實時性要求不是很高的話,可以使用這個方法。
使用場景:如果你的系統太多不明的混亂sql的話,又不知道哪個地方鎖了表,只知道哪個表經常會被鎖。
問題: sql2000數據,用死鎖監控,發現有時會有select語句在等等鎖着表,正常select是不是會鎖表的,但就是查不出哪里鎖了表。導致select長時間等待。所有的select都在等待。
系統都動不了。
最快的解決:在所有經常出來等待的select表后加上WITH(NOLOCK) 。