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)