SQL Server 2005两种快照隔离机制的比较

image

总得来说,READ_COMMITTED_SNAPSHOT可能比较适合于原有数据库设计得相对复杂,不想做太多更改的情况下。它不需要去修改以前的存储过程。这其实是READ_COMMITTED隔离级别的一个改良版本。

 

而另外一个SNAPSHOT则是一个全新的隔离级别。

 

下面是我用第二种方式的一个例子

--创建演示用的数据库
create database SnapshotIsolationDemo
go
use SnapshotIsolationDemo
alter database SnapshotIsolationDemo set allow_snapshot_isolation on
create table test
( tid int not null primary key,
  tname varchar(50) not null
)
insert into test values(1,'version1')
insert into test values(2,'version2')

--建一个查询,这里故意不提交事务

use SnapshotIsolationDemo
begin tran
update test set tname='version3' where tid=2
select * from test

--再建一个查询,模拟另外一个用户来访问
use SnapshotIsolationDemo
set transaction isolation level snapshot
select * from test

--清理工作
use master
drop database SnapshotIsolationDemo
go

posted @ 2009-04-20 11:12  陈希章  阅读(703)  评论(0编辑  收藏  举报