使用 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ 时有哪些风险或性能下降?

我们有一些从 BizTalk 服务调用的 SP。我们有时会陷入僵局。如果我们更改隔离级别,会有哪些风险和可能的性能下降?

最佳答案

可重复读将锁定所有具有
被取走了。在与您合作的情况下
游标获取大量数据,这可能导致
与其他用户争用,因为他们不能
获取锁以更新游标读取的任何行
使用可重复读取直到光标关闭。

性能下降的风险是事务可能
遭受更多的超时和/或死锁。这种风险
与两个交易需要的概率成正比
同时读取/更新相同的行。另一个因素是
可能会影响您的应用程序的锁的大小。如果锁是
在页面级别获取,如果数据不同,则可能会发生争用
交易需要访问位于同一页上 - 不一定是同一行。

另一方面,当您使用较低的隔离级别时,
例如,游标稳定性,您保留开放的可能性
您之前在交易期间提取的行可能是
在您的工作单元更新之前由其他事务更新
完全的。

关于sql-server - SQL Server 中的事务隔离级别可重复读取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2155092/

10-12 14:55
查看更多