SQL Server 内存管理器对象

Microsoft SQL Server 中的 内存管理器 对象提供用于监视服务器内存总体使用情况的计数器。 监视总体服务器内存使用情况以衡量用户活动和资源使用情况,有助于识别性能瓶颈。 监视 SQL Server 实例使用的内存有助于确定:

  • 如果由于物理内存不足而存在瓶颈,导致无法有效地在缓存中存储经常访问的数据。 如果内存不足,SQL Server 必须从磁盘检索数据。

  • 如果可以通过添加更多内存或使更多内存可用于数据缓存或 SQL Server 内部结构来提高查询性能。

内存管理器计数器

下表描述了 SQL Server 内存管理器 计数器。

SQL Server 内存管理器计数器 DESCRIPTION
连接内存(KB) 指定服务器用于维护连接的动态内存总量。
数据库缓存内存 (KB) 指定服务器当前用于数据库页缓存的内存量。
可用内存(KB) 指定服务器当前未使用的已提交内存量。
授予的工作区内存 (KB) 指定当前授予执行进程的内存总量,例如哈希、排序、大容量复制和索引创建操作。
锁定块 指定服务器上正在使用的当前锁块数(定期刷新)。 锁块表示单个锁定的资源,例如表、页或行。
分配的锁块 指定当前分配的锁块数。 在服务器启动时,分配的锁块数加上分配的锁所有者块数取决于 SQL Server 配置选项。 如果需要更多锁块,该值将增加。
锁定内存 (KB) 指定服务器用于锁的动态内存总量。
锁定所有者块 指示服务器上当前正在使用的锁所有者块的数量(定期刷新)。 锁所有者块表示单个线程对对象的锁的所有权。 因此,如果页面上每个线程有一个共享的 (S) 锁,将有三个锁所有者块。
分配的锁所有者块 指定当前分配的锁所有者块数。 在服务器启动时,分配的锁所有者块数和分配的锁块数取决于 SQL Server 锁定 配置选项。 如果需要更多锁所有者块,该值将动态增加。
最大工作区内存(KB) 指示可用于执行进程的最大内存量,例如哈希、排序、大容量复制和索引创建作。
内存授予未完成 指定已成功获取工作区内存授予的进程总数。
等待中的内存授予 指定等待工作区内存授予的进程总数。
优化器内存 (KB) 指定服务器用于查询优化的动态内存总量。
保留服务器内存 (KB) 指示服务器为将来使用保留的内存量。 此计数器显示最初授予的当前未使用的内存量,该内存量显示在 “已授予工作区内存”(KB)中。
SQL 缓存内存 (KB) 指定服务器正用于动态 SQL 缓存的动态内存总数。
被盗的服务器内存 (KB) 指定服务器用于数据库页以外的用途的内存量。
目标服务器内存 (KB) 指示服务器可以使用的理想内存量。
服务器内存总量(KB) 指定服务器通过内存管理器提交的内存量。

另请参阅

监视资源使用情况(系统监视器)
SQL Server 缓冲区管理器对象
sys.dm_os_performance_counters(Transact-SQL)