Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 事务隔离级别SQL Server中的可重复读取_Sql Server_Biztalk_Isolation Level - Fatal编程技术网

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

Sql server 事务隔离级别SQL Server中的可重复读取,sql-server,biztalk,isolation-level,Sql Server,Biztalk,Isolation Level,使用SET-TRANSACTION ISOLATION LEVEL REPEATABLE READ时有哪些风险或性能下降 我们有一些从BizTalk服务调用的SP。我们有时会陷入僵局。如果我们更改隔离级别,有什么风险和可能的性能降级?可重复读取在读取后不会解除共享锁 这意味着,如果您在RR事务中执行SELECT,则并发事务将无法更新由SELECT锁定的行。我们无法告诉您使用单个数据点(事务隔离级别)可能会遇到哪些潜在风险或性能问题。我们对您的数据、数据量、TPS和数据依赖性一无所知。无论何时绩效

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


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

可重复读取在读取后不会解除共享锁


这意味着,如果您在
RR
事务中执行
SELECT
,则并发事务将无法更新由
SELECT

锁定的行。我们无法告诉您使用单个数据点(事务隔离级别)可能会遇到哪些潜在风险或性能问题。我们对您的数据、数据量、TPS和数据依赖性一无所知。无论何时绩效是一个问题,尝试它,衡量它。没有其他答案。

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

性能降低的风险在于,事务可能会 超时和/或死锁次数增加。这种风险 与两个事务需要执行的概率成正比 同时读取/更新相同的行。另一个因素是 锁的大小会影响应用程序。如果锁是 如果数据不同,则可能会发生争用 事务需要访问同一页,而不一定是同一行

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

对已经说过的话进行补充:不能完全消除死锁。你所能做的就是最大限度地减少它们发生的可能性。

你所说的“死锁”是什么意思?是
SQL Server
返回一条错误消息,说明死锁已解决,还是您只是挂起了事务?后者不是死锁,而是锁争用。