隔离级别

3 篇文章 0 订阅
3 篇文章 0 订阅

控制隔离数据以供一个进程使用并防止其它进程干扰的程度的事务属性。设置隔离级别定义了 SQL Server 会话中所有 SELECT 语句的默认锁定行为。

  当多个事务同时进行时,通过设置隔离级别来处理脏读、不可重复读、幻读事件

  read uncommitted | 0 未提交读

  将查询的隔离级别指定为 0。

  可以读脏数据

  读脏数据:一事务对数据进行了增删改,但未提交,有可能回滚,另一事务读取了回滚前的数据

  read committed | 1 已提交读

  将查询的隔离级别指定为 1。

  避免脏读,但可以出现不可重复读和幻读

  不可重复读:一事务对数据进行了更新或删除操作,另一事务两次查询的数据不一致

  幻像读:一事务对数据进行了新增操作,另一事务两次查询的数据不一致

  repeatable read | 2 可重复读

  将查询的事务隔离级别指定为 2。

  避免脏读,不可重复读,允许幻像读

  serializable | 3 可序列化

  将查询的隔离级别指定为 3。

  串行化读,事务只能一个一个执行,避免了脏读、不可重复读、幻读

  执行效率慢(我遇到过一种情况,用时是隔离级别1的30倍),使用时慎重

  SNAPSHOT

  当读取数据时,可以保证读操作读取的行是事务开始时可用的最后提交版本。

  这意味着这种隔离级别可以保证读取的是已经提交过的数据,并且可以实现可重复读,

  也能确保不会幻读。不过这种隔离级别使用的不是共享锁,而是行版本控制。

  SQL Server 2005以后的版本支持。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值