SP_LOCK

其显示信息为:

Spid:进程ID号(要发现哪些用户和该spid相连,你就要执行存储过程sp_who)

Dbid:数据库ID号(可以在主数据库中的sysdatabases表格中找到它)

Objid:对象ID号(要查看这个对象,你可以在主数据库中的sysobjects表格中查询指定的objid)

Indid:索引ID号

Type:缩写的对象类型(DB:数据库、TAB:表、PG:页、EXT:簇、RID:行标等)

Resource:锁资源

Mode:锁模式(S:共享锁、U:修改锁、X:排它锁、IS共享意图锁、IX排它意图锁)

Status:当前该锁的状态(GRANT获得状态、WAIT被其它进程阻塞、CVNT当前锁正在转化)。

当你发现一个spid 获得了大量的数据库锁定时,这将有助于确定什么存储过程或语句正在运行。为了达到这个目的,运行以下 DBCC 命令: 
DBCC INPUTBUFFER(spid) 
这个DBCC命令将返回正在EventInfo字段中运行的语句的相关信息。

类型列  
  "类型"列显示当前锁定的资源类型。  
  资源类型   描述    
  RID   用于锁定表中的一行的行标识符。    
  KEY   索引中的行锁。用于保护可串行事务中的键范围。    
  PAG   数据或索引页。    
  EXT   相邻的八个数据页或索引页构成的一组。    
  TAB   包括所有数据和索引在内的整个表。    
  DB   数据库。    
  资源列  
  "资源"列提供有关正被锁定资源的信息。  
  资源类型   描述    
  RID   表内已锁定行的行标识符。行由   fileid:page:rid   组合进行标识,其中,rid   是页中的行标识符。    
  KEY   SQL   Server   内部使用的十六进制数字。    
  PAG   页码。页由   fileid:page   组合进行标识,其中,fileid   是   sysfiles   表中的   fileid,而   page   是该文件内的逻辑页码。    
  EXT   正被锁定的扩展盘区中的第一个页码。页由   fileid:page   组合进行标识。    
  TAB   由于   ObjId   列已包含表的对象   ID,所以没有提供任何信息。    
  DB   由于   dbid   列已包含数据库的数据库   ID,所以没有提供任何信息。    
  在sp_lock的结果集内,锁定的RID资源类型中的资源描述为1:1225:2。这表明在fileid1内、页码为1225的页中、行标识符为2的行上应用了锁。有关更多信息,请参见有关死锁的疑难解答。  
  模式列  
  "模式"列描述正应用于资源的锁类型。锁类型包括任何多粒锁。  
  状态列  
  "状态"列显示锁是已经获取(GRANT)、正在另一个进程中被阻塞(WAIT)、还是正在转换为另一个锁(CNVT)。正转换为另一种锁的锁会保持在一种模式中,但等待获取更强的锁模式(例如,从更新模式变为排它模式)。当遇到诊断阻塞问题时,会认为CNVT与WAIT类似。  
  监视锁定活动的其它工具  
  当持有和释放锁的速度比sp_lock显示的速度快时,使用sp_lock来显示锁定信息并不一定始终可行。在这种情况下,可以使用SQL事件探查器监视和记录锁定信息。此外,可以使用Windows性能监视器监视使用SQL Server锁对象计数器的锁活动。

(1)共享   (S)   用于不更改或不更新数据的操作(只读操作),如   SELECT   语句。    
(2)更新   (U)   用于可更新的资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。     
(3)排它   (X)   用于数据修改操作,例如   INSERT、UPDATE   或   DELETE。确保不会同时对同一资源进行多重更新。    
(4)意向   用于建立锁的层次结构。意向锁的类型为:意向共享   (IS)、意向排它   (IX)   以及与意向排它共享   (SIX)。    
(5)架构   在执行依赖于表架构的操作时使用。架构锁的类型为:架构修改   (Sch-M)   和架构稳定性   (Sch-S)。    
(6)大容量更新   (BU)   向表中大容量复制数据并指定了   TABLOCK   提示时使用。

 

Sp_Lock的更多相关文章

  1. 用sp_lock诊断SQL Sever的死锁问题

    找出什么被锁定了 系统的反应迟缓意味着你应该做一些调查了.你的查找最好从测定系统发生锁定的数量和频率开始.如果你的系统环境处理事务性很高的话,这样各个应用程序争夺资源就会很常见,从而引起锁定.解决这些 ...

  2. SQL实用

    实用的SQL语句   行列互转 create table test(id int,name varchar(20),quarter int,profile int) insert into test  ...

  3. sqlserver事务加锁机制

    锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏 ...

  4. SQL Server中的事务与锁

    了解事务和锁 事务:保持逻辑数据一致性与可恢复性,必不可少的利器. 锁:多用户访问同一数据库资源时,对访问的先后次序权限管理的一种机制,没有他事务或许将会一塌糊涂,不能保证数据的安全正确读写. 死锁: ...

  5. 实用的SQL语句

    行列互转 ) select * from test2 --列转行 select id,name,quarter,profile from test2 unpivot ( profile for qua ...

  6. sql语句优化SQL Server

    MS   SQL   Server查询优化方法查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)          2.I/O吞吐量小,形成了 ...

  7. SQL性能优化案例分析

    这段时间做一个SQL性能优化的案例分析, 整理了一下过往的案例,发现一个比较有意思的,拿出来给大家分享. 这个项目是我在项目开展2期的时候才加入的, 之前一期是个金融内部信息门户, 里面有个功能是收集 ...

  8. SQL Server 监控统计阻塞脚本信息

        数据库产生阻塞(Blocking)的本质原因 :SQL语句连续持有锁的时间过长 ,数目过多, 粒度过大.阻塞是事务隔离带来的副作用,它是不可避免的,而且是一个数据库系统常见的现象. 但是阻塞的 ...

  9. MS SQL 日常维护管理常用脚本(二)

    监控数据库运行 下面是整理.收集监控数据库运行的一些常用脚本,也是MS SQL 日常维护管理常用脚本(一)的续集,欢迎大家补充.提意见. 查看数据库登录名信息   Code Snippet SELEC ...

随机推荐

  1. 学习用java基于webMagic+selenium+phantomjs实现爬虫Demo爬取淘宝搜索页面

    由于业务需要,老大要我研究一下爬虫. 团队的技术栈以java为主,并且我的主语言是Java,研究时间不到一周.基于以上原因固放弃python,选择java为语言来进行开发.等之后有时间再尝试pytho ...

  2. AspNet Core Api Restful +Swagger 实现微服务之旅 (三)

    (1)  访问Rest ful接口时 Token验证  返回数据格式封装 (一)访问时Token验证  返回数据格式封装 1.1访问Api接口 方法 实现         1.1.1 创建访问Rest ...

  3. javaweb学习总结(五)——Servlet开发(一)(转)

    转载自 http://www.cnblogs.com/xdp-gacl/p/3760336.html 一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun ...

  4. Tabhost中Activity绑定Service

    在android中,一个Activity绑定一个Service组件我们一般用Context().bindService方法就能够.可是假设这个 Activity属于一个Tabhost的话就不行了,在网 ...

  5. iWeb峰会(HTML5峰会)2015年7月19日上海站会后感想

         上周日专门从南京跑到上海參加了iWeb峰会(HTML5峰会),感觉这一天去的挺值的.几个演讲都挺精彩,干货不少啊.       总体感觉随着2014年HTML5标准的终于定稿,最近HTML5 ...

  6. Asp.net MVC 简单实现生成Excel并下载

    由于项目上的需求,需要导出指定条件的Excel文件.经过一翻折腾终于实现了. 现在把代码贴出来分享 (直接把我们项目里面的一部份辅助类的代码分享一下) 我们项目使用的是Asp.Net MVC4.0模式 ...

  7. NIO相关基础篇三

    转载请注明原创出处,谢谢! 说在前面 上篇NIO相关基础篇二,主要介绍了文件锁.以及比较关键的Selector,本篇继续NIO相关话题内容,主要谈谈一些Linux 网络 I/O模型.零拷贝等一些内容, ...

  8. (转自知乎https://www.zhihu.com/question/20794107)动态代理

    作者:雨夜偷牛的人链接:https://www.zhihu.com/question/20794107/answer/23330381来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  9. Shell编程中的变量作用域

    有两个shell脚本文件: a.sh name=Tom echo $name ./b.sh b.sh echo "name in b.sh:"$name 运行./a.sh时输出结果 ...

  10. android 事件传递机制(1)

    在项目中,经常遇到事件冲突,ScrollView,ViewPager滑动卡顿等情况,比如:onClick和onLongClick事件冲突,dispatchTouchEvent,onInterceptT ...