Microsoft SQL Server 中的 SQLServer:Locks 对象提供有关各个资源类型的 SQL Server 锁的信息。 在 SQL Server 资源上会保持锁,例如在事务期间读取或修改的行,以防止不同事务对资源的并发使用。 例如,如果事务对表中某一行保留排他锁(X),则任何其他事务都不能修改该行,直到该锁释放为止。 最小化锁会增加并发性,从而提高性能。 可以同时监视 Locks 对象的多个实例,每个实例表示资源类型的锁。
下表描述了 SQL Server Locks 计数器。
SQL Server Locks 计数器 | DESCRIPTION |
---|---|
平均等待时间(ms) | 导致等待的每个锁请求的平均等待时间(以毫秒为单位)。 |
锁定请求数/秒 | 从锁管理器请求的每秒新锁和锁转换数。 |
锁定超时 (超时 > 0)/秒 | 每秒超时的锁请求数,但不包括 NOWAIT 锁的请求。 |
Lock Timeouts/sec | 每秒超时的锁请求的数量,其中包括对NOWAIT锁的请求。 |
锁定等待时间 (ms) | 最后一秒锁的总等待时间(以毫秒为单位)。 |
锁定等待数/秒 | 每秒需要调用方等待的锁定请求数。 |
死锁数/秒 | 每秒导致死锁的锁请求数。 |
SQL Server 可以锁定这些资源。
条目 | DESCRIPTION |
---|---|
_总 | 所有锁的信息。 |
AllocUnit | 分配单元上的锁。 |
应用程序 | 应用程序指定资源的锁定。 |
数据库 | 数据库上的锁,包括数据库中的所有对象。 |
程度 | 锁定在连续的 8 页组上。 |
文件 | 数据库文件的锁。 |
堆/BTree | 堆或 BTree (HOBT)。 数据页堆或索引的 BTree 结构上的锁。 |
密钥 | 索引中某行的锁。 |
元数据 | 一条目录信息的锁,也称为元数据。 |
对象 | 表、存储过程、视图等对象上的锁,包括所有数据和索引。 该对象可以是 sys.all_objects中具有条目的任何内容。 |
页 | 数据库中 8 千字节页面上的锁。 |
RID | 行 ID。 堆中单个行的锁。 |