Sqlserver事务隔离级别详解
sqlserver存储方式
页
sqlserver是以页的形式存储数据,每个数据页的大小为8KB,sqlserver会把空间分为多个页,sqlserver与数据交互单位最小的io操作就是页级别。(页的类型有数据页,索引页等)
区
八个连续的页会组合成一个区,区的最少是由八个连续的页组成。
事务隔离级别
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.脏读

2.不可重复读

3.幻读

4.丢失更新

Sqlserver事务隔离级别详解的更多相关文章
- SQL Server 事务隔离级别详解
标签: SQL SEERVER/MSSQL SERVER/SQL/事务隔离级别选项/设置数据库事务级别 SQL 事务隔离级别 概述 隔离级别用于决定如果控制并发用户如何读写数据的操作,同时对性能也有一 ...
- 1031MySQL事务隔离级别详解
转自http://xm-king.iteye.com/blog/770721 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的.低级别的隔离级一般支 ...
- MySQL事务隔离级别详解
原文地址:http://xm-king.iteye.com/blog/770721 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的.低级别的隔离级 ...
- mysql事务隔离级别详解和实战
A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据 但是 在A事务中查询的话 查到的都是操作之后的数据 没有提交的数据只有自己看得到,并没有update到数据库. 查看InnoD ...
- MSSQL事务隔离级别详解(SET TRANSACTION ISOLATION LEVEL)
控制到 Transact-SQL 的连接发出的 SQL Server 语句的锁定行为和行版本控制行为. TRANSACT-SQL 语法约定 语法 -- Syntax for SQL Server ...
- MYSQL事务隔离级别详解附加实验
参考: https://dev.mysql.com/doc/refman/5.7/en/set-transaction.html http://xm-king.iteye.com/blog/77072 ...
- MySQL事务,事务隔离级别详解
1.什么是事务 指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行. 2.事务的4个特性 原子性(Atomicity).一致性(Consistency).隔离性(Isolatio ...
- 【转】SQL Server 事务隔离级别详解
SQL 事务隔离级别 概述 隔离级别用于决定如果控制并发用户如何读写数据的操作,同时对性能也有一定的影响作用. 步骤 事务隔离级别通过影响读操作来间接地影响写操作:可以在回话级别上设置事务隔离级别也可 ...
- MySQL四种事务隔离级别详解
本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做 ...
随机推荐
- SpringCloud实战-Eureka
熟悉微服务架构或Dubbo框架的都知道,微服务中最核心.最基础的组件就是注册中心了.下面利用Spring Cloud Eureka实现服务注册中心.并注册一个简单的服务提供者. 首先先创建一个spir ...
- C#的一些小知识
一.Server.MapPath E:\MyProject\GisSystem\Json\jsonlist.aspx,GisSystem项目下有个Json文件夹,文件夹下有个jsonlist.aspx ...
- 2018年,传言QQ首次被神秘黑客DDOS攻击,Python可以实现?
于2018-5-10日晚 网络流传黑客DDOS攻击了QQ服务器,导致大家聊天发送内容时出现感叹号.我们都知道一般情况下出现感叹号都是你的网络不稳定,或者...别人已经删除你了.然而昨晚很奇怪,发出的内 ...
- Java中的String类型
1.基本类型和引用类型 在C语言里面,是有指针这么一个变量类型的,指针变量保存的就是所要指向内容的地址.在Java里面,没有了指针的这么个说法,而是换了一个词:引用类型变量. 先说Java里面的基本类 ...
- .NET开发设计模式-单例模式
解释:单例模式主要特点:确保一个类只有一个实例,并提供一个访问它的全局访问点 意思就是说:在多线程的情况下:A先进行创建了该实例.B再进来访问时就不需要再创建了. using System; usin ...
- .NET开发微信小程序-Template模块开发
1.添加一个文件目录,里面放模板信息 例:我在根目录添加一个文件夹:template 然后在这个文件夹下面添加相应的页面.比如我添加一个promodel.wxml文件.主要是放商品相关的模块信息(注: ...
- bugku login2 writeup 不使用vps的方法
0x00前言 这个题是sql注入与命令执行相结合的一个题,思路有两个: 一.:sql注入登录web系统,命令执行反弹公网IP监听端口(需要vps),此种方法详见链接:http://www.bugku. ...
- eclipse 创建maven web示例
注意,以下所有需要建立在你的eclipse等已经集成配置好了maven了,没有的话需要安装maven. 一.创建项目 1.新建maven项目,如果不在上面,请到other里面去找一下 一直点击下一步, ...
- ngnix 是什么
Nginx系列(一)--nginx是什么? 发表于2015/7/1 7:57:58 14347人阅读 分类: Nginx Java 一.介绍 Nginx是一个高性能的HTTP和反向代理服务器,也是一 ...
- CentOS7下安装rabbitmq消息队
安装如下步骤: 1.首先安装erlang yum install erlang 注:如果出现No package erlang available. rpm -Uvh http://download. ...