文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程MSSQLSQL Server 2005使用基于行版本控制的隔离级别初探(3) -- SNAPSHOT
精品推荐
特别推荐
·SQL Server企业管理器和查询分析器简介
·常用SQL语句词典
·结束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安装问题汇总
热点TOP10
·巴塞尔新资本协议概述
·详细介绍优化SQL Server 2000的设置
·SQL Server 2005 Express Edition安装步骤详解
·完全讲解 使用MSCS建立SQL Server集群
·解决sqlserver2005中文版与vs2005的WebApplicationProject的冲突问题
·[Sql server]DBA的面试题也可以是这样
·SQLServer自定义函数:fnSplit
·Decryptencryptedstoredprocedures
·SQL Server 2005(32 位)系统要求
·SQL Server关于SQL Agent使用技巧
·触发器对SQL Server数据库进行备份
·SQL Server 2008在数据仓库方面的一些优点
·介绍SQL Server 2008的四项新特性
·SQL Server 2008的在线事务处理
·微软数据库SQL Server 2008延期
·结束SQL注入隐患3招
·掌握SQL Server数据库的实用技巧
·SQL Server中函数的用法两种
·在不同版本的SQL Server中存储数据
·缩小SQL Server数据库的日志文件

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)。打开的事务必须完成。

不允许执行快照隔离事务。
 
ON
 已启用对快照隔离事务的支持。

允许执行快照事务。
 
PENDING_OFF
 对快照隔离事务的支持处于转换状态(从 ON 到 OFF)。

此后启动的快照事务无法访问此数据库。更新事务仍会导致此数据库中出现版本控制开销。现有快照事务仍可以访问此数据库,不会遇到任何问题。直到数据库快照隔离状态为 ON 时处于活动状态的所有快照事务完成后,状态 PENDING_OFF 才变为 OFF。
 

SNAPSHOT的使用:

下面是使用READ_COMMITTED_SNAPSHOT的一个例子:
     在快照隔离下运行的事务可以访问数据库中为快照启用的表。若要访问没有为快照启用的表,则必须更改隔离级别。例如,下面的代码示例显示了在快照事务下运行时联接两个表的 SELECT 语句。一个表属于未启用快照隔离的数据库。当 SELECT 语句在快照隔离下运行时,该语句无法成功执行。
SET TRANSACTION ISOLATION LEVEL SNAPSHOT;

BEGIN TRAN

    SELECT t1.col5, t2.col5

  FROM Table1 as t1

  INNER JOIN SecondDB.dbo.Table2 as t2

ON t1.col1 = t2.col2;

[1] [2] 下一页 




上一篇:XSLT document()函数在IE与Firefox中的区别

下一篇:使用ADO.NET2.0提升数据交互性能(1)

SQL Server 2005使用基于行版本控制的隔离级别初探(3) -- SNAPSHOT 相关文章:
·“黑客”教你如何远程控制计算机
·IE7.0浏览器有用的9个使用技巧
·GHOST使用方法(图解)
·远程控制软件pcAnywhere10.0试用手记
·Vista系统使用技巧总结
·解析远程控制带来的安全危险
·电脑使用一段时间后会变慢原因解析
·QQ空间导航代码最新版使用方法
·用IE即可轻松远程控制对方电脑
·溯雪使用说明
SQL Server 2005使用基于行版本控制的隔离级别初探(3) -- SNAPSHOT 相关软件:
·SQL Server 2000 基础系列课程视频
·黑客视频教程 VMware虚拟机的安装和使用
·使用GPMC随心所欲管理组策略
·黑客视频教程-灰鸽子远控使用教程
·Adobe Photoshop CS 2 简体中文使用指南
·FLASH 8中文使用手册
·《反恐精英CS1.6》完整安装版本
·逐步精通数据库 sql server 视频教程
·CIW Server Administrator
·QQ显IP 显隐身超级版 2款不同功能最新QQ版本 友情下载

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot