诚请各路高手解决,不胜感激!
服务器:windows server 2003
CPU:intel dual 2108
内存:2G
运行程序:tomcat5.5 诺顿杀毒软件 SQL SERVER 2000 
网站流量:PV 3000/日
网站刚刚运行一周,昨天发现SQL内存使用已达1G左右,我重新启动之后发现内存占用才20多M,但随着SQL运行时间的增长,内存占用也不断提高,不到一天时间,已经达到700M。百思不得其解,请大侠们明示!

解决方案 »

  1.   

    补充说明一下:SQL SERVER 2000 版本为SP4
      

  2.   

    在您启动 SQL Server 之后,SQL Server 内存使用量将会持续稳定上升,即使当服务器上活动很少时也不会下降。另外,任务管理器和性能监视器将显示计算机上可用的物理内存稳定下降,直到可用内存降到 4 至 10 MB 为止。仅仅出现这种状态并不表示内存泄漏。此状态是正常的,并且是 SQL Server 缓冲池的预期状态。默认情况下,SQL Server 根据操作系统报告的物理内存加载来动态增大和收缩其缓冲池(缓存)的大小。只要有足够的内存可用于防止分页(在 4 至 10 MB 之间),SQL Server 缓冲池就会继续增大。像在与 SQL Server 分配内存位于相同计算机上的其他进程一样,SQL Server 缓冲区管理器将在需要的时候释放内存。SQL Server 每秒可以释放和获取几兆字节的内存,从而使它可以快速适应内存分配更改。 
      

  3.   

    您可以使用最小服务器内存和最大服务器内存配置选项来设置 SQL Server 数据库引擎使用的内存(缓冲池)量的上下限。在设置最小服务器内存和最大服务器内存选项之前,请查阅以下 Microsoft 知识库文章中标题为“内存”一节中的参考信息:
    319942  (http://support.microsoft.com/kb/319942/ ) 如何确定正确的 SQL Server 配置设置
    注意,最大服务器内存选项只限制 SQL Server 缓冲池的大小。最大服务器内存选项不限制其余未保留内存区域,SQL Server 准备将该区域分配给其他组件(例如扩展存储过程、COM 对象以及非共享 DLL、EXE 和 MAPI 组件)。由于存在上述分配过程,因此 SQL Server 专用字节超过最大服务器内存配置是正常的。 有关此未保留内存区域中分配的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    316749  (http://support.microsoft.com/kb/316749/ ) 在 SQL Server 2000 和 SQL Server 7.0 中使用大量数据库时可能发生虚拟内存不足的情况 
      

  4.   


    解决 SQL Server 耗尽内存的情况
    [日期:2005-03-10]  来源:网络  作者:  [字体:大 中 小]
       如果您碰到SQL Server服务造成内存不断扩展最终系统死机等情况,请按照以下方法解决。   原理:SQL Server 2000引入的动态内存分配机制,一般不能很好的回收内存,如果计算机一直不关闭,就会发生内存耗尽的可能。您可以选择每周关机一次来避免,或者是按照下述方法来抑制内存的增长。1、在服务器上开始—Microsoft SQL Server—企业管理器 中启动SQL企业管理器
    2、启动以后打开右边的控制台树:控制台根目录\Microsoft SQL server\Sql Server组\(Local) 。
    3、在(Local)节点上单击鼠标右键,选择"属性"菜单,可以看到一个 SQl Server属性(配置) 窗体
    4、选择"内存"舌标,打开内存配置页面。将内存的最大值限定在一定的范围内,一般按照以下比例:
      a) 如果仅仅用于数据库服务器,为总内存的80-90%
      b) 如果兼任域服务器,一般为60-70%
      c) 如果还兼任WEB服务器,建议最大为60%
    5、设定完毕点击确定,然后重新启动SQl Server服务使之生效即可。
      

  5.   

    根据你的问题....SQL SERVER是这样的内存........你可以限制最大值(MAX MERMORY)
      

  6.   

    sql server 和其他应用不一样,内存对它来说是很重要的,所以我们不能用其他应用程序的内存概念来理解它,LZ 你目前的状况是正确的,没有什么不对的地方,如果想SQL SERVER 能占用少量的内存空间(非生产环境),你可以给SQL SERVER  内存上限,保证你其他的应用
      

  7.   

    现在TOMCAT 已经占用700M了,而且COMCAT最大内存为1G,如果给SQL设置最大内存的话可能也就784M,对服务器负担是不是太大,如果能让SQL释放内存的话,就更好了
      

  8.   

    建议你增加服务器内存,如果不想增加的话最好还是设置max memory上线,我自认为这样对sql server
    服务器的性能提高不了。
      

  9.   

    谢谢好心人的帮助,总体来说需要设置一下SQL的最大内存来限制,但我本人考虑这样可能会影响SQL的性能,我感觉到奇怪的是我的网站访问量并不大,为什么SQL会占用如此大的内存呢?
      

  10.   


    这是由SQL Server的内存管理机制决定的。。
      

  11.   

    看看你用的SQL是个人版还是企业版
      

  12.   

    这很正常呀过虑啦
    占用到2G多也是正常的。。倒是要重点注意系统设计、SQL代码质量。否则,访问量和数据量稍多,就挂了
    有偿支持
      

  13.   

    你可以下载 剑儿SQL Server内存释放器 1.0 绿色版 试试,很不错.我在服务器上使用了.这段时间内存真的降下来了.剑儿SQL Server内存释放器 1.0 绿色版http://www.xdowns.com/soft/38/110/2011/Soft_75290.html