设为首页收藏本站

EPS数据狗论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1513|回复: 0

Sqlserver事务隔离级别详解

[复制链接]

20

主题

159

金钱

262

积分

入门用户

发表于 2019-6-17 14:46:06 | 显示全部楼层 |阅读模式

sqlserver存储方式
  1. **  页   **

  2.     sqlserver是以页的形式存储数据,每个数据页的大小为8KB,sqlserver会把空间分为多个页,sqlserver与数据交互单位最小的io操作就是页级别。(页的类型有数据页,索引页等)

  3.       ** 区**

  4.       八个连续的页会组合成一个区,区的最少是由八个连续的页组成。
复制代码

事务隔离级别
** 1.READ UNCOMMITTED 允许所有脏读,不可重复读和幻读**
** 2.READ COMMITTED 不允许脏读,但允许不可重复读和幻读**
** 3.REPEATABLE READ 不允许脏读、不可重复读,但允许幻读**
** 4.SERIALIZABLE 事务串行化**

事务并发引发的问题
** 1.脏读**
** **例如当事务A对订单剩余量(100个)做了修改(减去1个),此时事务B进行获取到的订单剩余量是(99个),事务A此时又对该订单进行了回滚,那么事务B刚才获取到的订单剩余量(99个)就是属于脏读。

** 2.幻读**
** **幻读主要是在数据删除和添加的时候引发的问题,例如事务A获取订单表总记录数为(10条),此时事务B删除了一条记录(9条),那么事务A再次去获取订表数据的时候就会发现只剩下(9条)数据,这种操作对于事务A来说就相当于出现幻觉。

** 3.不可重复读**
** **跟幻读的区别是幻读针对的是删除和添加的动作,不可重复读一般针对修改,例如事务A获取订单剩余量为(10个),此时事务B对订单做了修改去掉1个(剩余9个),事务A再次获取的时候就是(9条),事务A前后两次读取数据值不一样。

** 4.丢失更新**
** **事务A获取订单剩余量为(10个),此时事务B也同步获取到订单剩余量为(10个),事务A修改订单剩余量-1,此时订单剩余量为(9个),并且提交事务,事务B修改订单剩余量-1,此时订单剩余量为(9个),也提交事务,此时订单剩余量应该为(8个)的但是实际剩余量确实(9个)

1.脏读****
1.png
2.不可重复读
2.png
3.幻读
3.png
4.丢失更新
4.png
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

客服中心
关闭
在线时间:
周一~周五
8:30-17:30
QQ群:
653541906
联系电话:
010-85786021-8017
在线咨询
客服中心

意见反馈|网站地图|手机版|小黑屋|EPS数据狗论坛 ( 京ICP备09019565号-3 )   

Powered by BFIT! X3.4

© 2008-2028 BFIT Inc.

快速回复 返回顶部 返回列表