数据库表被锁表,select会等待。

SELECT * FROM dbo.Table_1 WITH(NOLOCK) 

这样就可以不用等待,但数据读的是被锁之前的数据,表被锁了,肯定会有对表的update,delete操作。

如果对数据的准确性,实时性要求不是很高的话,可以使用这个方法。

使用场景:如果你的系统太多不明的混乱sql的话,又不知道哪个地方锁了表,只知道哪个表经常会被锁。

 

问题: sql2000数据,用死锁监控,发现有时会有select语句在等等锁着表,正常select是不是会锁表的,但就是查不出哪里锁了表。导致select长时间等待。所有的select都在等待。

    系统都动不了。

最快的解决:在所有经常出来等待的select表后加上WITH(NOLOCK) 。

posted on 2014-04-23 15:59  wolf12  阅读(3228)  评论(0编辑  收藏  举报