Buffer Pool--SQL Server:Buffer Manager 对象
--==============================================================
--参考链接:http://technet.microsoft.com/zh-cn/library/ms189628(v=SQL.110).aspx
--1.如果Lazy writes/sec值远远低于Checkpoint pages/sec或为一个很小的值,可粗劣判断内存压力并不高
--2.使用Page reads/sec和Page writes/sec值来粗略判断数据库读写比
SELECT * FROM sys.sysperfinfo
WHERE object_name LIKE '%SQLServer:Buffer Manager%'
Buffer Cache Hit Ratio(相对值,与base做比较,参考阀值:90%+)
指示在缓冲区高速缓存中找到而不需要从磁盘中读取的页的百分比。 该比率是缓存命中总次数与过去几千页访问以来的缓存查找总次数之比。 经过很长时间后,该比率的变化很小。 由于从缓存中读取数据比从磁盘中读取数据的开销小得多,一般希望该比率高一些。 通常,可以通过增加 SQL Server 的可用内存量来提高缓冲区高速缓存命中率。
Checkpoint pages/sec(累积值,参考阀值:30/sec)
指示由要求刷新所有脏页的检查点或其他操作每秒刷新到磁盘的页数。
Database pages
指示缓冲池中包含数据库内容的页数。
Free list stalls/sec
指示每秒必须等待空闲页面的请求数量。
Lazy writes/sec (累积值,参考阀值:20/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
缓冲池中的页数(包括数据库页、可用页和被盗页)。
Free pages
所有可用列表的总页数。
--========================================================
--Target pages 代表服务器能获得的最大内存
--Stolen pages 代表Buffer pool中被挪用的内存
--Free pages 代表可用的内存
--Total pages 代表buffer pool获得的内存
SELECT * ,
CAST(P.cntr_value*8.0/1024.0 AS INT) AS MemoryMB
FROM sys.sysperfinfo p
WHERE p.object_name LIKE '%SQLServer:Buffer Manager%'
AND (p.counter_name LIKE 'Total pages%'
OR p.counter_name LIKE 'Free pages%'
OR p.counter_name LIKE 'Target pages%'
OR p.counter_name LIKE 'Stolen pages%')