`

Sql Server 2005中的快照隔离

阅读更多
Sql Server2005提供了两种基于快照的隔离类型,他们都是利用行版本控制来维护快照的:
1、已提交读快照隔离(RCSI),通过修改数据库的一个选项来启用
alter database AdventureWorks set READ_COMMITTED_SNAPSHOT on

2、快照隔离(SI),必须在两个地方开启
A、启用数据库的ALLOW_ISOLATION_SNAPSHOT选项
alter database AdventureWorks  set ALLOW_SNAPSHOT_ISOLATION on
B、通过set transaction isolation level 命令为每个想要使用SI的连接设置隔离级别

set transaction isolation level snapshot


观察数据库的状态

目录视图sys.databases包含了几个报告数据库快照隔离状态的字段.
snapshot_isolation_state字段的可能值是0到4,表示四种可能的SI状态,而snapshot_isolation_state_desc字段对每种状态作了清晰的说明:
off:数据库关闭了快照隔离状态
in_transition_to_on:数据库正处于开启SI的中间状态
on:SI被开启
in_transition_to_off:数据库正处于关闭SI的中间状态而不能启动新的快照事务

数据库选项read_committed_snapshot可能的状态值
0:关闭
1:开启

并发模型的选择

悲观并发控制时Sql Server2005中的默认设置,也是所有早期版本的唯一选择。事务的行为是由加锁来保证的,而付出的代价是产生较多的阻塞。在访问同一数据资源时,读者和写者之间会互相阻塞。由于Sql Server最初是为使用悲观并发而设计的,用户应该在证明乐观并发确实对应用程序更有用的前提下才考虑使用

在大多数情况下,基于下列原因RCSI比SI更受欢迎:
1、RCSI比SI占用更少的tempdb空间
2、RCSI支持分布式事务,而SI不支持
3、RCSI不会产生更新冲突
4、RCSI无需再应用程序端作任何修改。唯一要更改的只是一个数据库选项

可以考虑在下列情况中使用SI:
1、不太可能由于更新冲突而导致事务必须回滚得情况
2、需要基于运行时间长、能保证时间点一致性的多语句来生成报表的情况


乐观并发控制的优缺点:
优点:
1、select 操作无需获取共享锁,因此读者和写者之间不会互相阻塞
2、所有的select会得到一个始终如一的数据快照
3、与悲观并发相比,锁的需求总量大大减少了,因而将节约更多系统开销
4、Sql Server会执行较少的锁升级
5、发生死锁的可能性较小

缺点:
1、当需要扫描一个很长的版本链时,select语句的性能会有所下降
2、行版本控制需要tempdb数据库中的额外数据
3、只要数据库启用了基于快照隔离级别的某一种时,更新和删除操作都必须产生行版本
4、需要为每个受到影响的行增加大小为14个字节的行版本控制信息
5、更新操作的性能可能会因为维护行版本而变差
6、使用SI模式的更新操作可能会因为冲突检测而被回滚
7、必须小心地控制tempdb的空间

分享到:
评论

相关推荐

    SQLSERVER快照隔离

    快照隔离快照隔离快照隔离快照隔离快照隔离快照隔离

    SQL Server 2005管理最重要特点

    本文从数据库管理方面讲述了SQL Server2005的10个最重要的特点:数据库镜像、在线恢复、在线检索操作、快速恢复、安全性能的提高、新的SQL Server Management Studio、专门的管理员连接、快照隔离、数据分割、增强...

    SQL Server 性能监视与优化.pdf

    有效监视包括定期拍摄当前性能的快照来隔离导致问题的进程,以及连续收集数据来跟踪性能趋势。Microsoft SQL Server 和 Microsoft Windows 操作系统提供实用工具,使您可以查看数据库的当前状态并跟踪性能的状态变化...

    Microsoft JDBC Driver 4.0 for SQL Server参考文档chm格式

    JDBC 驱动程序可访问 SQL Server 2005 中引入的许多功能,包括数据库镜像、xml 数据类型、用户定义的数据类型以及大值数据类型;并且支持新的“快照”事务隔离。此外,JDBC 驱动程序还支持使用集成身份验证。

    SQLServer2008查询性能优化 2/2

    书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...

    SQLServer2008查询性能优化 1/2

    书名: SQLServer2008查询性能优化 作者: 弗里奇(Grant Fritchey) 出版社: 人民邮电出版社 出版日期: 2010年8月1日 ISBN: 9787115230294 编辑推荐 《SQL Server 2008查询性能优化》为你提供了处理查询性能所...

    数据库的读读事务也会产生死锁

    前段时间有朋友问:SQL Server的AlwaysOn的辅助数据库默认会使用行版本快照控制来消除数据库上的读写事务阻塞和死锁问题  即使用户显式为查询设置了其他事务隔离级别,所有锁提示(Lock Hint)都会被忽略。  ...

    数据库系统-招标参数---模板.doc

    满足从不同" " " "主流数据源(例如:SQLServer、Oracle、DB2、Sy" " " "base、Excel、文本、SAP等等)抽取、转换、加载" " " "到不同数据源(例如:SQLServer、Oracle、DB2、" " " "Sybase、Excel、文本、SAP等等)...

    高级软件架构师复习提纲

    //主-主行级同步模式 //使用SQL Server的主-主行级同步模式//主-从快照复制模式//捕捉事务细节模式 //主-从事务增量复制模式 60、 在收尾阶段应该进行哪些工作?//调查客户满意度 //准备收尾报告 //进行项目回顾 //...

Global site tag (gtag.js) - Google Analytics