最近遇到这个问题,困扰了他们很久,就是在开启的事务中,要循环对某一个表进行查询,在查询第一次的时候,没有问题,当查询第二次的时候,就会等上 n久,最后返回来“超时”,这是由于在事务开启后,对某一个表进行查询时,会对这个表添加锁,直到这个事务提交或回滚后,这个锁才能被去掉。
下面是解决方法,其实也挺简单的,就是加一句话而已:
在要查询的表的表名后,添加“with(nolock)”,就这样就可以避免事务查询表时,对表添加锁。
写全面就是:select * from 表名 with(nolock) where ...
本文介绍了一种在事务中循环查询同一表时出现查询超时的问题及其解决方案。通过在查询语句中添加with(nolock)选项,可以避免因事务锁导致的查询延迟。
819

被折叠的 条评论
为什么被折叠?



