SQL Server 已提交读快照 测试

原文: SQL Server 已提交读快照 测试

1. 打开数据库 已提交读快照 选项

 

2. 数据库 已提交读快照 模式下的测试

 

a) 测试表 Test

 

b) 开启事务1,更新数据C2 = '200'(未提交)

BEGIN TRAN 

UPDATE Test SET C2 = '200' WHERE C1 = 'A'

-- COMMIT

 

c) 查询数据(查询没有被阻塞,C2 = '100')

SELECT * FROM Test

 

d) 开启事务2,更新数据C2 = '300'(未提交),更新操作被阻塞(等待事务1提交)

BEGIN TRAN 

UPDATE Test SET C2 = '300' WHERE C1 = 'A'

-- COMMIT

 

e) 提交事务1,再次查询数据,数据已经被更新成 '200',事务2阻塞已经解除

SELECT * FROM Test

 

f) 提交事务2,查询数据,数据已经被更新成 '300'

SELECT * FROM Test

 

3. 已提交读模式 vs 已提交读快照 区别:

 

a) 如果有事务未提交,读操作会被阻塞

 

4. 会话级别设置数据库隔离级别

 

a) 原来的隔离级别是已提交读快照,查询不会被阻塞

b) 会话调整隔离级别(可重复读),查询被阻塞

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值