SQL Server 2005使用基于行版本控制的隔离级别初探(3) -- SNAPSHOT
日期:2007年1月3日 作者: 查看:[大字体 中字体 小字体]-
回顾一下SNAPSHOT的构架:
SNAPSHOT隔离就像真实的快照,它会无视涉及行的变化。在SNAPSHOT隔离下运行的事务将读取数据,然后由另一事务修改此数据。SNAPSHOT事务不阻塞由其他事务执行的更新操作,它忽略数据的修改继续从版本化的行读取数据。但是,当快照事务尝试修改已由其他事务修改的数据时,SNAPSHOT事务将生成错误并终止.
相比READ_COMMITTED_SNAPSHOT,SNAPSHOT真正做到了快照隔离,完全无视数据的更新。相对READ_COMMITTED_SNAPSHOT,它更进一步减轻了对锁的依赖,在性能方面获得了更大的优势。不可避免的是,SNAPSHOT的事务性也变得更差,但是,至少,它比NoLock要好。^_^
SNAPSHOT的限制:
SNAPSHOT比READ_COMMITTED_SNAPSHOT更快,但是坏消息是它的限制也多。
1.快照隔离不支持分布式事务,包括分布式分区数据库中的查询。
2.SQL Server 不会保留多个版本的系统元数据。表中的数据定义语言 (DDL) 语句和其他数据库对象(索引、视图、数据类型、存储过程和公共语言运行时函数)会更改元数据。如果 DDL 语句修改一个对象,那么在快照隔离下对该对象的任何并发引用都将导致快照事务失败。READ_COMMITTED_SNAPSHOT 数据库选项为 ON 时,已提交读事务没有此限制。
例如,数据库管理员执行下面的 ALTER INDEX 语句。
USE AdventureWorks;GO
ALTER INDEX AK_Employee_LoginID
ON HumanResources.Employee REBUILD;
GO
执行 ALTER INDEX 语句后,任何在执行 ALTER INDEX 语句时处于活动状态的快照事务,如果试图引用 HumanResources.Employee 表,都将收到错误。而使用行版本控制的已提交读事务不受影响。3.BULK INSERT 操作可能会导致对目标表元数据的更改(例如,禁用约束检查时)。如果出现这种情况,访问大容量插入表的并发快照隔离事务将失败。
设置SNAPSHOT:
设置SNAPSHOT隔离模式也很简单,只要我们简单的一步操作就可以实现。
ALTER DATABASE DATABASE_NAME
SET ALLOW_SNAPSHOT_ISOLATION ON;但是要注意:如果 ALLOW_SNAPSHOT_ISOLATION 数据库选项设置为 ON,则数据库中数据已修改的所有活动事务完成之前,Microsoft SQL Server Database Engine 实例不会为已修改的数据生成行版本。如果存在活动的修改事务,SQL Server 将把该选项的状态设置为 PENDING_ON。所有修改事务完成后,该选项的状态更改为 ON。在该选项完全处于 ON 状态之前,用户无法在数据库中启动快照事务。数据库管理员将 ALLOW_SNAPSHOT_ISOLATION 选项设置为 OFF 后,数据库将跳过 PENDING_OFF 状态。
下面是ALLOW_SNAPSHOT_ISOLATION 选项的各个状态
当前数据库的快照隔离框架状态
说明
OFF
未启用对快照隔离事务的支持。不允许执行快照隔离事务。
PENDING_ON
对快照隔离事务的支持处于转换状态(从 OFF 到 ON)。打开的事务必须完成。不允许执行快照隔离事务。
- [1] [2] [3] 下一页
-
- SQL Server 2005使用基于行版本控制的隔离级别初探(3) -- SNAPSHOT 相关文章:
- ·InterPhonic 文本至语音转换合成在线完成
- ·创意设计:多姿多彩的自然标本玻璃砖
- ·XML Schema定义元素的基本知识
- ·惠普82款笔记本存在严重网络安全漏洞
- ·HTML基础:HTML的基本结构
- ·简单分析Script脚本跨站攻击漏洞技术
- ·基本的页面设计元素布局比例
- ·谈谈跨站脚本攻击与防御技巧
- ·网站的文章内容SEO优化基本原则
- ·脚本注入方式
- SQL Server 2005使用基于行版本控制的隔离级别初探(3) -- SNAPSHOT 相关软件
- ·《魔戒之中土大战2+资料片巫王的崛起》游侠全版本繁体中文汉化包
- ·《舞街区》公测版0.47-0.49版本补丁
- ·《极品飞车10卡本峡谷》中文版v1.4升级档免CD补丁
- ·《极品飞车:卡本峡谷》Vista补丁英文版下载
- ·玄幻小说《遗弃的天才》(全本)
- ·续写《西游》的玄幻故事《朱雀记》(全本精校版)
- ·魔兽地图:《大师的缔造汉化版本 5.5C》
- ·《流星蝴蝶剑》版本切换补丁
- ·玄幻小说《XX天下之风月天子》(全本)
- ·《极品飞车-生死卡本谷》
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:XSLT document()函数在IE与Firefox中的区别
精品推荐
热点TOP10
- ·SQL Server 练习题
- ·MS-SQL开发常用汇总和t-sql技巧集锦
- ·查询及删除重复记录的方法大全
- ·SQL server 2005安装问题汇总
- ·MS SQL的一些经典常用操作语句汇总
- ·掌握SQL Server数据库的实用技巧
- ·SQL语法大全
- ·SQL Server建立应用程序安全性和程序角色
- ·轻松掌握使用 SQL Server 浏览器
- ·解决用sa登录sql 2005失败的问题
- ·sql server2000导入mdf文件
- ·SQL Server安全问题全攻略之口令
- ·SQL Server 2005 中的分区表和索引
- ·SQL Server的有效安装
- ·一个复合查询方法
- ·SQL Server中函数的用法两种
- ·改进SQL Server数据库系统安全五步走
- ·SQL Server 2008的新压缩特性
- ·怎样才能保护好 SQL Server 数据库
- ·解析 SQL Server 2008 的精妙之处
特别推荐
- ·结束SQL注入隐患3招
- ·掌握SQL Server数据库的实用技巧
- ·SQL的简单查询
- ·快速解决SQL Server“安全疑难”相关问题
- ·SQL Server 2005:你应知道的13件事
- ·实例解析:减少SQL日志大小的三个好方法
- ·使用SQL2000将现有代码作为Web服务提供
- ·sql server 2000数据库置疑的解决方法
- ·SQL Server安全问题全攻略之口令
- ·XP上不能安装MicrosoftSQLSERVER2000吗
- ·解析Microsoft Sql Server中的like语句
- ·推荐;适合SQL初学者学习的SQL FAQ集锦
- ·SQL Server 2005 中的分区表和索引
- ·查询及删除重复记录的方法大全
- ·详细介绍优化SQL Server 2000的设置
- ·关于SQL SERVER 日志满的处理方法
- ·使用SQL Server 2000索引视图提高性能
- ·SQL server 2005安装问题汇总
- ·解决用sa登录sql 2005失败的问题
- ·简单三步走堵死SQL Server注入漏洞
