内存问题定位基本流程:
主要用到的性能计数器
Page life expectancy (数据库计数器:主要显示不被使用的页,将在缓存中停留的秒数 )
Lazy writes/sec (数据库计数器:惰性写入器会在内存有压力且有新的内存需求时触发,成批的刷新“老化的缓冲区”)
Page Reads/sec,Page Writes/sec (这里使用数据库级别计数器:当需要读取或写入的页不在内存中,需要到磁盘中读取时计数)
Target Server Memory (KB) (SQL server能够使用的内存总量)
Total Server Memory (KB) (SQL SERVER使用的内存总量,这里指BUFFER POOL的大小)
Available MBytes (系统系数器:主要显示系统还有多少可用内存)
注:Target Server Memory (KB) - Total Server Memory (KB) 约等于SQL SERVER还可以使用的内存数。
步骤1.排除应用影响内存
Total Server Memory (KB)(SQL SERVER使用的内存总量,这里指BUFFER POOL的大小)可以查看SQL Server使用的内存总量,如果当使用的内存总量很小,而服务器依然有很大的内存Available MBytes请检查,是否限制了SQL Server的内存使用。
Available MBytes 主要显示系统中还多少空闲内存 (如果这个值较大,而Target Server Memory (KB) - Total Server Memory (KB) 为0或者较小,可以适当的调大max server memory(最大内存,稍后介绍))
如果Total Server Memory (KB) 计数器有陡降的情况发生,一般可以说明有外部程序对内存的使用占用的数据库使用的内存。