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。锁定一个堆中的一行。 |