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 事务隔离级别 概述 隔离级别用于决定如果控制并发用户如何读写数据的操作,同时对性能也有一定的影响作用. 步骤 事务隔离级别通过影响读操作来间接地影响写操作:可以在回话级别上设置事务隔离级别也可 ...
随机推荐
- [Linux学习]Shell脚本(1)--函数,输入,if判断(持续更新)+删除空行 +保存当前路径
1)接收输入 check_status() { echo --Check hi_repo status is ok? y or n read var if [ "$var" != ...
- apicloud 解析
function jiexi(id) { var getTabBarActivityUrl = '/QuestionReport?filter='; var urlParam = {}; ajaxRe ...
- iOS 服务器回空数据的处理
后端返回一个数组类型的数据,但是数据里面包含"<null>","(null)"等,本地缓存写入数据失败,write to File: 方法限制, 可 ...
- vim ---- 一键自动indent的命令
当用vim拷贝某一段代码到另一个程序的时候,往往indent会有一些问题.. 下面这个强大的命令能够让你一键让代码有很好的格式. gg=G 例子:
- spring 3.0 应用springmvc 构造RESTful URL 详细讲解
在线springmvc_rest demo 由于下一版本的rapid-framwork需要集成spring RESTful URL,所以研究了一下怎么搭建. 并碰到了一下问题. springmvc 3 ...
- 第五章 搭建 S3C6.410 开发板的 测试环境
一.简介: 对于嵌入式驱动开发者来说,你必须要了解什么是开发板:它与我们经常用的手机类似, 包含了显示屏. 键盘. Wi-Fi. 蓝牙等模块等,是开发者必备的硬件设备.但与手机不同的是:在开发板上安装 ...
- IOS UI多线程 NSThread 下载并显示图片到UIImageView
效果图 @property (weak,nonatomic)IBOutletUILabel *downLabelInfo; @property (weak,nonatomic)IBOutletUIIm ...
- C语言的基础
任何事物的运行离不开两个部分,一个部分是"事物",一个部分是"运行",前者是状态,在C语言中表现为常量.变量等,后者是过程,在C语言中表现为语句.函数等. 语言 ...
- Linux 压缩和解压缩常用命令
主要记录tar,zip,gzip,bzip2,rar等常用命令,对.tar..gz..tar.gz..tgz..bz2..tar.bz2..zip..rar这8种压缩文件的操作. 1. tar 命令 ...
- 解决 502、504 Gateway Time-out(nginx)
一.504 Gateway Time-out问题常见于使用nginx作为web server的服务器的网站 我遇到这个问题是在升级discuz论坛的时候遇到的 一般看来, 这种情况可能是由于nginx ...