SQL Server Buffer Manager 对象
Buffer Manager 对象提供了计数器,用于监视 SQL Server 如何使用:
内存存储数据页、内部数据结构和过程缓存。
计数器监视 SQL Server 读取和写入数据库页时的物理 I/O。
监视 SQL Server 使用的内存和计数器有助于确定:
是否存在物理内存不足的瓶颈。如果 SQL Server 无法将经常访问的数据存储在缓存中,则必须从磁盘检索数据。
是否可以通过添加更多内存或增加数据缓存或 SQL Server 内部结构的可用内存来提高查询性能。
SQL Server 需要从磁盘读取数据的频率。与其他操作(例如内存访问)相比,物理 I/O 会消耗大量时间。尽可能减少物理 I/O 可以提高查询性能。
还可以使用地址窗口化扩展插件 (AWE) 计数器来监视 SQL Server 中的 AWE 活动。例如,可以确保 SQL Server 有足够的内存分配给 AWE,以使其正确运行。有关详细信息,请参阅内存体系结构、使用 AWE 或 awe enabled 选项。
下表描述了 SQL ServerBuffer Manager 性能对象。
SQL Server Buffer Manager 计数器 |
说明 |
---|---|
AWE lookup maps/sec |
每秒服务器请求、在缓冲池中查找和映射数据库页的次数。数据库页映射后便成为服务器虚拟地址空间的一部分。 |
AWE stolen maps/sec |
每秒从可用列表中取出和映射缓冲区的次数。 |
AWE unmap calls/sec |
每秒调用取消映射缓冲区的次数。缓冲区取消映射后,将被排除在虚拟服务器地址空间之外。每次调用时可以取消映射一个或多个缓冲区。 |
AWE unmap pages/sec |
每秒取消映射的 SQL Server 缓冲区数。 |
AWE write maps/sec |
每秒必须映射到脏缓冲区中的次数,经过该次数后才能写入磁盘。 |
Buffer Cache Hit Ratio |
在缓冲区高速缓存中找到而不需要从磁盘中读取的页的百分比。该比率是缓存命中总次数与过去几千页访问以来的缓存查找总次数之比。经过很长时间后,该比率的变化很小。由于从缓存中读取数据比从磁盘中读取数据的开销小得多,一般希望该比率高一些。通常,可以通过增加 SQL Server 的可用内存量来提高缓冲区高速缓存命中率。 |
Checkpoint pages/sec |
由要求刷新所有脏页的检查点或其他操作每秒刷新到磁盘的页数。 |
Database pages |
缓冲池中有数据库内容的页数。 |
Free list stalls/sec |
每秒必须等待可用页的请求次数。 |
Free pages |
所有可用列表的总页数。 |
Lazy writes/sec |
每秒被缓冲区管理器的惰性编写器写入的缓冲区数。惰性编写器是一个系统进程,用于成批刷新脏的老化的缓冲区(包含更改的缓冲区,必须将这些更改写回磁盘,才能将缓冲区重用于其他页),并使它们可用于用户进程。惰性编写器不需要为创建可用缓冲区而频繁执行检查点。 |
Page life expectancy |
页若不被引用将在缓冲池中停留的秒数。 |
Page lookups/sec |
每秒要求在缓冲池中查找页的请求数。 |
Page reads/sec |
每秒发出的物理数据库页读取数。此统计信息显示的是所有数据库间的物理页读取总数。由于物理 I/O 的开销大,可以通过使用更大的数据缓存、智能索引、更有效的查询或更改数据库设计等方法,将开销降到最低。 |
Page writes/sec |
每秒执行的物理数据库页写入数。 |
Readahead pages/sec |
每秒为预期使用读取的页数。 |
Reserved Pages |
缓冲池保留的页数。 |
Stolen pages |
用于其他服务器用途(包括过程缓存)的页数。 |
Target Pages |
缓冲池中理想的页数。 |
Total Pages |
缓冲池中的页数(包括数据库页、可用页和被盗页)。 |