SELECT * FROM dbo.Table_1 WITH(NOLOCK)
这样就可以不用等待,但数据读的是被锁之前的数据,表被锁了,肯定会有对表的update,delete操作。
如果对数据的准确性,实时性要求不是很高的话,可以使用这个方法。
使用场景:如果你的系统太多不明的混乱sql的话,又不知道哪个地方锁了表,只知道哪个表经常会被锁。
问题: sql2000数据,用死锁监控,发现有时会有select语句在等等锁着表,正常select是不是会锁表的,但就是查不出哪里锁了表。导致select长时间等待。所有的select都在等待。
系统都动不了。
最快的解决:在所有经常出来等待的select表后加上WITH(NOLOCK) 。