开启事务后,在其中多次查询同一表会报错(运行超时)的解决办法

最近遇到这个问题,困扰了他们很久,就是在开启的事务中,要循环对某一个表进行查询,在查询第一次的时候,没有问题,当查询第二次的时候,就会等上n久,最后返回来“超时”,这是由于在事务开启后,对某一个表进行查询时,会对这个表添加锁,直到这个事务提交或回滚后,这个锁才能被去掉。

下面是解决方法,其实也挺简单的,就是加一句话而已:

在要查询的表的表名后,添加“with(nolock)”,就这样就可以避免事务查询表时,对表添加锁。

写全面就是:select * from 表名 with(nolock) where ...

posted @ 2009-11-16 14:09  IT爱好者  阅读(1535)  评论(2编辑  收藏  举报