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. UWP 应用程序内购

    今天来说一下应用程序内购的问题,这里面有坑,给自己做个笔记,也给需要的人提个醒. 我目前的需要是可以允许用户捐赠赞助App的形式内购,最终效果如下 只讲上面的列表部分,下面的就是图片布局啥的,没意思了 ...

  2. ArcGIS jsAPI (4.x)本地部署字体符号乱码

    在下载了新版arcigs 的 JS API 后,每次部署在IIS中都会出现部件字体乱码的问题,需配置响应标头和添加文件映射 一. HTTP响应标头配置 在 IIS 中的 HTTP响应标头 中加入以下配 ...

  3. 用 Label 控制 Service 的位置 - 每天5分钟玩转 Docker 容器技术(106)

    上一节我们讨论了 Service 部署的两种模式:global mode 和 replicated mode.无论采用 global mode 还是 replicated mode,副本运行在哪些节点 ...

  4. bootstrap validator 使用 带代码

    如何使用bootstrapVlidator插件? 下载bootstrapVlidator插件 在需要使用的页面引入bootstrapVlidator的js文件和css文件 如: 注: 在此基础之前必须 ...

  5. php中trait

    1.简介 自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait. Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制.Trait 为了减少单继承语言的限制,使 ...

  6. Heritrix1.14.4在Eclipse的配置和使用

    转载 1.首先在 Eclipse 中新建 Java 工程 ,工程名自取,以MyHeritrix为例.利用下载的源代码包根据以下步骤来配置这个工程. 2.导入类库 Heritrix 所用到的工具类库都在 ...

  7. Struts2学习笔记整理(一)

    最近在学习框架,很多人建议我直接学SSM,SSM看了一段时间后发现很多东西虽然可以用了,但是并不是很了解,所以我打算重新来过.从SSH开始学习,前面已经大致的学习了Hibernate,对于Hibern ...

  8. 手动搭建express框架

    创建相应的文件夹 在根路径下创建package.json文件并在命令面板里安装相应的模块包(如下) 2.  在根路径下创建app.js, 在根路径下创建routes文件夹,并在文件夹中创建index. ...

  9. C language 模拟 win的经典游戏——扫雷

    让我们在terminal下愉快的...扫雷 昨天跟奇葩霖聊起"雷区"这个敏感词汇,然后非常荣幸的... 应该轰炸不到我.. . 后来百无聊赖的去玩了把扫雷.然后发现我之前都是乱扫的 ...

  10. 人工智能背景下的Office 365现状和发展趋势

    作者:陈希章 发表于 2017年7月31日 引子 谈论人工智能是让人兴奋的,因为它具有让人兴奋的两大特征 -- 每个人都似乎知道一点并且以知道一点为荣,但又好像没多少人能真正讲的明白.毫无疑问,我也仅 ...