Windows Server 2008 R2 + SQL Server 2008 64位简体中文企业版 系统查了一下,就SQL占用了6G多的内存,有没有什么办法来管理或优化?系统是12G的内存。

解决方案 »

  1.   

    sql server 会自动进行内存管理,通常会根据自己的需求尽量占用物理内存用于缓冲(以提高缓冲区命中率),直到为操作系统保留 4-10MB 的物理内存空间(之所以选择此范围是因为经过微软的测试表明,此时操作系统会有最小的换页需求)。
    但是,如果由于其他程序的内存需求增加而导致可用物理内存低于 SQL SERVER 设置的目标(4-10MB),SQL SERVER 将会释放一些内存空间。如果不存在性能问题,就不需要干涉。如果服务器上有其他应用服务(如 IIS),则可以根据需要设置 SQL Server 最大可用内存,为应用服务保留足够的内存空间。如果有性能问题,特别是存在内存瓶颈,则需要对会话和 sql server 内部的进程进行跟踪/分析,找出最耗内存的,进行具体处理。
      

  2.   

    1、控制好最大内存。最好留2G,下限也是1G给操作系统,
    2、使用性能计数器,做一个比较长时间的监控,微软有一些指标,你可以看看是否存在内存压力。如果没有压力,那站的多也没啥奇怪的。所有DBMS都会缓存很多东西到内存里面。你清了,对性能影响很大。
      

  3.   

    缓存多事好事,更少的物理IO和重复使用很能提高数据库性能。
    一般留给操作系统2G,若同步多,再留给同步2G,其他全部给数据库就可以了
    你也可以手动设置数据库上限,点中你的服务器,右键属性,Mermory那里按你的需求设置
      

  4.   

    限制内存的话只需要设置MAX SERVER MEMORY就可以了,但是如果SQL Server需要这么多内存而限制内存以后可能会出现性能问题。