首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server中的事务隔离级别可重复读取

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

Stack Overflow用户
提问于 2010-01-28 22:21:11
回答 4查看 2.7K关注 0票数 4

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-01-28 22:45:06

Repeatable Read将锁定已读取的所有行。在使用游标获取大量数据的情况下,这可能会引起与其他用户的争用,因为在关闭游标之前,他们无法获得锁来更新游标使用可重复读取功能读取的任何行。

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

另一方面,当您使用较低的隔离级别(例如游标稳定性)时,您保留了这样一种可能性:在您的工作单元完成之前,您以前在事务期间获取的行可能会被其他事务更新。

票数 5
EN

Stack Overflow用户

发布于 2010-01-28 22:30:03

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

票数 2
EN

Stack Overflow用户

发布于 2010-01-28 22:55:17

补充已经说过的话:你不能完全消除死锁。你所能做的就是最小化它们发生的可能性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2155092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档