sql server 有关锁的视图说明 syslockinfo

ransact-SQL 参考

 
https://msdn.microsoft.com/zh-cn/library/ms179881.aspx 

syslockinfo

包含有关所有已授权、正在转换和正在等待的锁请求的信息。此表是锁管理器内部数据结构的非规范化表格格式视图,只存储在 master 数据库中。

列名 数据类型 描述
rsc_text nchar(32) 锁资源的文本化描述。包含资源名称的一部分。
rsc_bin binary(16) 二进制锁资源。包含锁管理器中所含的实际锁资源。对那些知道锁资源格式的工具包含该列,这些工具使用特定的锁资源格式生成自己的格式化锁资源和在syslockinfo 上执行自联接。
rsc_valblk binary(16) 锁值块。有些资源类型可以在特定的锁资源中包含附加数据,锁管理器不对这类锁资源进行哈希运算以决定具体某个锁资源的所有关系。例如,页锁不归具体的对象 ID 所有。但是,对于锁升级和出于其它目的,页锁的对象 ID 可以放置在锁值块中。
rsc_dbid smallint 与资源关联的数据库 ID。
rsc_indid smallint 与资源关联的索引 ID(如果适合)。
rsc_objid int 与资源关联的对象 ID(如果适合)。
rsc_type tinyint 资源类型。可以是:

1 = NULL 资源(未使用)。
2 = 数据库。
3 = 文件。
4 = 索引。
5 = 表。
6 = 页。
7 = 键。
8 = 扩展盘区。
9 = RID(行 ID)。
10 = 应用程序。

rsc_flag tinyint 内部资源标志。
req_mode tinyint 锁请求模式。该列是请求者的锁模式,并且代表已授权模式,或代表转换或等待模式。可以是:

0 = NULL。不授权访问资源。用作占位符。
1 = Sch-S(架构稳定性)。确保不在任何会话控制架构元素上的架构稳定性锁时除去架构元素,如表或索引。
2 = Sch-M(架构修改)。必须由任何要更改指定资源架构的会话进行控制。确保没有其它的会话正在引用指定的对象。
3 = S(共享)。授权控制会话对资源进行共享访问。
4 = U(更新)。表示在最终可能更新的资源上获取更新锁。用于防止常见形式的死锁,这类死锁在多个会话锁定资源并且稍后可能更新资源时发生。
5 = X(排它)。授权控制会话对资源进行排它访问。
6 = IS(意向共享)。表示有意将 S 锁放置在锁层次结构内的某个从属资源上。
7 = IU(意向更新)。表示有意将 U 锁放置在锁层次结构内的某个从属资源上。
8 = IX(意向排它)。表示有意将 X 锁放置在锁层次结构内的某个从属资源上。
9 = SIU(共享意向更新)。表示对有意在锁层次结构内的从属资源上获取更新锁的资源进行共享访问。
10 = SIX(共享意向排它)。表示对有意在锁层次结构内的从属资源上获取排它锁的资源进行共享访问。
11 = UIX(更新意向排它)。表示更新锁控制有意在锁层次结构内的从属资源上获取排它锁的资源。
12 = BU。由大容量操作使用。
13 = RangeS_S(共享键范围和共享资源锁)。表示可串行范围扫描。
14 = RangeS_U(共享键范围和更新资源锁)。表示可串行更新扫描。
15 = RangeI_N(插入键范围和空资源锁)。用于在索引中插入新键之前测试范围。
16 = RangeI_S。通过 RangeI_N 和 S 锁的重叠创建的键范围转换锁。
17 = RangeI_U。通过 RangeI_N 和 U 锁的重叠创建的键范围转换锁。
18 = RangeI_X。通过 RangeI_N 和 X 锁的重叠创建的键范围转换锁。
19 = RangeX_S。通过 RangeI_N 和 RangeS_S 锁的重叠创建的键范围转换锁。20 = RangeX_U。通过 RangeI_N 和 RangeS_U 锁的重叠创建的键范围转换锁。
21 = RangeX_X(排它键范围和排它资源锁)。该转换锁在更新范围中的键时使用。

req_status tinyint 锁请求的状态。可以是:

1 = 已授予。
2 = 正在转换。
3 = 正在等待。

req_refcnt smallint 锁引用计数。事务每次请求具体某个资源上的锁时,引用计数便增加。直到引用计数等于 0 时才能释放锁。
req_cryrefcnt smallint 留作以后使用。总是设置为 0。
req_lifetime int 锁生存周期位图。在某些查询处理策略的过程中,必须维护资源上的锁,直到查询处理器已完成查询的某个具体阶段为止。查询处理器和事务管理器用锁生存周期位图表示在完成查询的某个阶段时可以释放的锁组。位图内的某些位用于表示即使锁的引用计数等于 0,也必须到事务结束时才释放的锁。
req_spid int 请求锁的会话的内部 Microsoft® SQL Server™ 进程 ID。
req_ecid int 执行环境 ID (ECID)。用于表示并行操作内拥有具体某个锁的线程。
req_ownertype smallint 与锁关联的对象类型。可以是下列选项之一:

1 = 事务。
2 = 游标。
3 = 会话。
4 = ExSession。

注意:3 和 4 代表会话锁的特殊版本,分别跟踪数据库锁和文件组锁。

req_transactionID bigint 用于 syslockinfo 和事件探查器事件中的唯一事务 ID。
req_transactionUOW uniqueidentifier 标识 DTC 事务的工作单元 ID (UOW)。对于非 MS DTC 事务,UOW 设置为 0。
上一篇:DSP using MATLAB 示例 Example3.15


下一篇:oracle11G r2 静默安装单实例(待优化版)