我将以更简单的解释来描述我的问题:
我有一张桌子,而我的软件正在使用交易来访问它(更新,插入)。
问题是我想在此表中启用DIRT READ。但我不能在我的sql语句中使用(nolock),因为我无法更改软源。所以我在思考在启动事务的sql进程中启用脏读。
它确实在访问锁定表的语句中执行命令“SET ISOLATION LEVEL ...”和“WITH(NOLOCK)”...这就是我试图避免的。我想在开始事务的语句中启用污垢读取...
提前感谢!
答案 0 :(得分:1)
对于极少数情况,当争用确实无法避免并且架构设计正确时,答案永远不会启用脏读,而是转向snapshot isolation:
ALTER DATABASE ... SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE ... SET READ_COMMITTED_SNAPSHOT ON;
对于可以看到快照隔离引入的行版本开销的少数部署,他们可以使用专业人员来解决问题。