SQL Server监视内存的正确使用方案


  本文标签:SQL Server监视内存

  以下的文章主要向大家讲述的是SQL Server监视内存的正确使用方案,我们是在假设SQL Server数据库的监视内存处于不足的情况下,从相关的计数器开始进行着手的对其进行介绍,以下就是文章的主要内容介绍  。

  SQL Server监视内存的使用

  定期监视 Microsoft® SQL Server™ 实例,确认内存的使用在正常范围内,并且没有进程(包括 SQL Server)缺少内存或消耗太多的内存  。

  

  若要SQL Server监视内存不足情况,可从下列对象计数器开始:

  

  

  1. Memory:Available Bytes   
  2. Memory:Pages/sec   

  Available Bytes 计数器表示当前进程可使用的内存字节数  。Pages/sec 计数器表示由于缺页处理而从磁盘取回的页数,或由于缺页处理而写入磁盘以释放工作集空间的页数  。

  偏低的 Available Bytes 计数器值表示计算机从总体上短缺内存或一个应用程序没有释放内存  。高比率的 Pages/sec 计数器值可能表示换页过度  。监视 Memory:Page Faults/sec 计数器以保证磁盘活动不是由换页造成的  。

  

  换页率偏低(以及由此产生的换页错误)是正常的,即使计算机有大量的可用内存  。Microsoft Windows NT® 虚拟内存管理器 (VMM) 在调整 SQL Server 和其它进程的工作集大小时,会盗用这些进程的页,从而导致换页错误  。若要确定是 SQL Server 而非其它进程导致过度换页,请监视 Process:Page Faults/sec 计数器  。

  

  隔离 SQL Server 所用的内存

  默认情况下,SQL Server 会依据可获得的系统资源动态改变它的内存需求  。如果 SQL Server 需要更多的内存,它会要求操作系统确定是否有空闲的物理内存可用,并使用可用的内存  。若 SQL Server 不再需要当前分配给它的内存,它就将内存释放给操作系统  。不过,可以用 min server memory、max server memory 和 set working set size 服务器配置选项替代动态使用内存的选项  。有关更多信息,请参见服务器内存选项  。

  若要监视 SQL Server 正在使用的内存量,请检查下列性能计数器:

  1. Process:Working Set SQL Server:Buffer Manager:  
  2. Buffer Cache Hit Ratio SQL Server:Buffer Manager:   
  3. Total Pages SQL Server:Memory Manager:Total Server Memory (KB)  

  WorkingSet 计数器表示的是一个进程所占用的内存数量  。若这一数值持续低于 SQL Server 配置使用的内存数量(由"最小服务器内存"和"最大服务器内存"服务器选项设置),则表示 SQL Server 所配置的内存比它所需要的多  。否则,用"设置工作集大小"服务器选项修改工作集大小  。

  Buffer Cache Hit Ratio 计数器值依应用程序而定,但比率最好为 90% 或更高  。增加内存直到这一数值持续高于 90%,表示 90% 以上的数据请求可以从数据缓冲区中获得所需数据  。

  若 TotalServerMemory (KB) 计数器值与计算机的物理内存大小相比一直很高,可能表示需要更多的内存  。

  以上的相关内容就是对SQL Server监视内存的使用的介绍,望你能有所收获  。