sql-server - SQL Server 中的事务隔离级别可重复读取

标签 sql-server biztalk isolation-level

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

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

最佳答案

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

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

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

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

相关文章:

c# - 自定义 .net 组件未从 Biztalk Expression Shape 中触发

mysql - 隔离级别并且不跳过任何数据

sql-server - 使用脚本为不同数据库中的所有表创建同义词

sql-server - 如何在SQL Server 2012中部署现有的SSIS包?

SQL Server - 同步两个数据库

azure - 如何使用 BizTalk 2013 连接到基于 Azure 存储帐户解决方案的 SFTP 服务

sql-server - SQL Server : Comparing against next X in group

c# - Biztalk 与数据代理层的 API

java.sql.Connection 隔离级别

python - 针对 SQL Server 中的表同时运行的脚本