SQL Server Locks 对象

Microsoft SQL Server 中的 SQLServer:Locks 对象提供了有关各种资源类型的 SQL Server 锁的信息。锁加在 SQL Server 资源上(如在一个事务中读取或修改的行),以防止各种事务并发使用资源。例如,如果一个排它 (X) 锁被一个事务加在某一表的某一行上,在这个锁被释放前,其他事务都不可以修改这一行。尽可能少使用锁可提高并发性,从而改善性能。可以同时监视 Locks 对象的多个实例,每个实例代表一个资源类型上的一个锁。

下表介绍了 SQL ServerLocks 计数器。

SQL Server Locks 计数器

说明

Average Wait Time (ms)

每个导致等待的锁请求的平均等待时间(毫秒)。

Lock Requests/sec

锁管理器每秒请求的新锁和锁转换数。

Lock Timeouts (timeout > 0)/sec

每秒超时的锁请求数,但不包括对 NOWAIT 锁的请求。

Lock Timeouts/sec

每秒超时的锁请求数,包括对 NOWAIT 锁的请求。

Lock Wait Time (ms)

锁在最后一秒内的总等待时间(毫秒)。

Lock Waits/sec

每秒要求调用者等待的锁请求数。

Number of Deadlocks/sec

每秒导致死锁的锁请求数。

SQL Server 可以锁定下列这些资源。

项目

说明

全部

所有锁的信息。

分配单元

分配单元的锁。

应用程序

锁定指定了应用程序的资源。

数据库

锁定数据库(包括数据库中的所有对象)。

扩展盘区

锁定由连续的 8 个页构成的一组。

文件

锁定数据库文件。

堆/B 树

堆或 B 树 (HOBT)。锁定数据页堆,或索引的 B 树结构。

锁定索引中的某行。

元数据

锁定一些目录信息(又称为元数据)。

对象

锁定表、存储过程、视图等(包括所有数据和索引)。该对象可以是包含 sys.all_objects 中某项的任何一个对象。

锁定数据库中 8 KB 页。

RID

行 ID。锁定一个堆中的一行。