sql Server会把经常使用到的数据缓存在内存里(就是数据页缓存),用以提高数据访问速度。因为磁盘访问速度远远低于内存,所以减少磁盘访问量同样是数据库优化的重要方面。 当数据页缓存区出现内存不足,则会出现查询慢,磁盘忙等等问题。 分析方法:主要是用到性能计数器。
查看如下性能计数器:
1. sql SERVER:Buffer Manager-Lazy Writes/sec:内存不足则会频繁调用Lazy Writer把数数据写入磁盘,此值会经常不为0. 2. sql SERVER:Buffer Manager-Page life expectancy:内存不足时,此计数器表现为下降趋势或者一直停留在较低值。 3. sql SERVER:Buffer Manager-Page reads/sec:内存不足时,则查询那些经常使用但又没有缓存在内存里的数据时,就不需要读取磁盘,这此值表现为持续上升或者停留在较高值。 4. sql SERVER:Buffer Manager-Stolen pages:Stolen pages通常用于缓存执行计划,以备重用。内存不足时,sql Server本身机制会优先清除执行计划缓存,则此值表现为下降或者较低水平。 查询当前用户任务等待: <div class="codetitle"><a style="CURSOR: pointer" data="76537" class="copybut" id="copybut76537" onclick="doCopy('code76537')"> 代码如下: