SQL 事务隔离学习
select --*
request_session_id as spid,
resource_type as restype,
resource_database_id as dbid,
DB_NAME(resource_database_id) as dbname,
resource_description as res,
resource_associated_entity_id as resid,
case when resource_type= 'OBJECT' then OBJECT_NAME( resource_associated_entity_id )
end
as objectName,
request_mode as mode,
request_status as status
from sys.dm_tran_locks select --*
session_id as spid,
connect_time,
last_read,
last_write,
most_recent_sql_handle,
text
from sys.dm_exec_connections
cross apply sys.dm_exec_sql_text(most_recent_sql_handle) --as a
where session_id in (56,57) select --*
session_id as spid,
login_time,
host_name,
program_name,
login_name,
nt_user_name,
last_request_start_time,
last_request_end_time
from sys.dm_exec_sessions
where session_id in (56,57) select --*
[session_id],
[blocking_session_id],
[command],
[sql_handle],
text,
[database_id],
[wait_type],
[wait_time],
[wait_resource]
from sys.dm_exec_requests
cross apply sys.dm_exec_sql_text([sql_handle])
where blocking_session_id>0
ISOLATION LEVEL | note | 读操作 | 写操作 |
READ UNCOMMITTED(with nolock) | 脏读 | 不请求共享锁 | 不妨碍获取排他锁 |
READ COMMITED | 不可重复读 | 读操作不会事务持续期间内保留共享锁, 甚至在语句结束前也不能一直保留共享锁, 这意味着在一个事务处理内部对相同数据资源的两个读操作之间,没有共享锁会锁定该资源 |
因此,其他事务可以在两个读操作 之间更改数据资源, 读操作因而可能每次得到不同的取值 |
REPEATABLE READ(holdlock) | 幻读 | 共享锁一直保持到事务完成为止 | 能阻塞Update,不能阻Insert , 能够防止并发负面影响:丢失更新 |
SERIALIZABLE | 读操作锁定满足查询搜索条件的键的整个范围 | 能阻塞Update,Insert | |
SNAPSHOT | 基于行版本控制(非共享锁) 数据库级别开启 set allow_snapshot_isolation on |
读操作读取的数据行 是事务启动前最后提交的版本 | 进行更新冲突检测 |
READ COMMITTED SNAPSHOT | 基于行版本控制(非共享锁) 数据库级别开启 set read_committed_snapshot_on |
读操作读取的数据行 是语名启动前最后提交的版本 | 不进行更新冲突检测 |
SQL 事务隔离学习的更多相关文章
- 30分钟全面解析-SQL事务+隔离级别+阻塞+死锁
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- 图解 sql 事务隔离级别
sql 事务隔离级别有四种分种为: 一 Read Uncpommitted(未提交读) 二 Read Committed(提交读) 三 Repeated Read(可重复读) 四 Serializab ...
- SQL 事务隔离级别
转载来源:https://www.cnblogs.com/chenmh/p/3998614.html 标签: SQL SEERVER/MSSQL SERVER/SQL/事务隔离级别选项/设置数据库事务 ...
- 【概念原理】四种SQL事务隔离级别和事务ACID特性
摘要: SQL事务隔离级别和事务的ACID特性 事务是一组读写操作,并且具有只有所有操作都成功才算成功的特性. 事务隔离级别 SQL事务隔离级别由弱到强分别是:READ_UNCOMMITTED.R ...
- (4.12)全面解析-SQL事务+隔离级别+阻塞+死锁
30分钟全面解析-SQL事务+隔离级别+阻塞+死锁 转自:https://blog.csdn.net/slowlifes/article/details/52752735 2016年10月07日 23 ...
- (分享别人的一篇好文章,来自jackson0714)30分钟全面解析-SQL事务+隔离级别+阻塞+死锁()
30分钟全面解析-SQL事务+隔离级别+阻塞+死锁 阅读目录 概述: 一.事务 二.锁 三.阻塞 四.隔离级别 五.死锁 以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQ ...
- SQL事务隔离级别
数据库是要被广大客户所共享访问的,那么在数据库操作过程中很可能出现以下几种不确定情况. 更新丢失(Lost update) 两个事务都同时更新一行数据,但是第二个事务却中途失败退出,导致对数据的两个修 ...
- SQL Server 事务隔离级别详解
标签: SQL SEERVER/MSSQL SERVER/SQL/事务隔离级别选项/设置数据库事务级别 SQL 事务隔离级别 概述 隔离级别用于决定如果控制并发用户如何读写数据的操作,同时对性能也有一 ...
- 【转】SQL Server 事务隔离级别详解
SQL 事务隔离级别 概述 隔离级别用于决定如果控制并发用户如何读写数据的操作,同时对性能也有一定的影响作用. 步骤 事务隔离级别通过影响读操作来间接地影响写操作:可以在回话级别上设置事务隔离级别也可 ...
随机推荐
- 设置Ubuntu为本地时间
大家在切换操作系统的时候会发现一个问题, Windows 和 Ubuntu 的时间会出现不一致的情况.在 Windows 中把时间设置正确了过后,回到在 Ubuntu 后系统的时间又不一样了,在 Ub ...
- MVC之路随记1--Filter的应用
功能:MVC提供过滤器Filter,使开发者不用复杂的实现AOP而直接用Filter实现同样的功能. 实现:1.定义一个类实现ActionFilterAttribute,重载借口中的方法后在Contr ...
- Java数组和C++异同
一.定义和初始化 1.Jave定义和初始化: Java:两种方式 Type[] A; Type A[]; 定义时不能指定数组的长度 静态初始化: A = new Type[][Ele1,Ele2 ...
- 最大流模版 pascal
//最大流模版 ; maxm=; ..maxn] of integer; end; var n,m,max:longint; r:..maxn,..maxn] of longint; g:..maxn ...
- PHP面向对象实例(图形计算器)
效果:
- NOIP 考前 KMP练习
BZOJ 1461 && BZOJ 1729 KMP+BIT 一看就是字符串匹配但是不同的是要按照每个字符的排名情况. 首先对于数字x的排名,那么要判断x前小于x的数的个数,和x前小于 ...
- EventBus的使用
# EventBus用于android线程间的通信,方便将子线程的数据发送的UI线程,对UI界面更新:总体来说对于这个过程可以分为3个步骤: 1.创建event,用于传递信息: 比如你需要传List集 ...
- MVC5 CodeFirst (一)
创建一个MVC5项目,VS生成了AccountController.HomeController,F5直接运行,实现了注册.登录.修改……但是注册的用户只是在内存里,下面我们来持久化. 三个命令:en ...
- 【转】JavaScript之web通信
原文转自:http://cloudbbs.org/forum.php?mod=viewthread&tid=28773&page=1&extra=#pid180304 一.前言 ...
- ASP.NET收发邮件
在.NET中常见到在线发邮件的实例,网站加上这个功能可以方便站长与用户的交流. NET 中发邮件有时候会用到IIS组件中的邮件服务器,不过复杂.对虚拟主机的配置也较麻烦, 也可用第三方组件比如Jmai ...