MSSQL2000内存暴涨 求分析原因 附图

爱我的人请呼吸 2011-12-04 06:22:28
近日接手一套WEB程序。MSSQL2000数据库。
上线后发现数据库经常跑满内存。WEB查询次数日均2W-5W次这个查询量应该不大。但是内存经常半天就跑满。
附上dbcc memorystatus查询的结果。请各位帮忙看下这个数据是否正常







因为不明白结果中各项数值的正常范围。无从参考。只能贴图上来请各位帮忙看下。先谢了!
...全文
116 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2011-12-05
  • 打赏
  • 举报
回复
还有, SQL 2000 SP4补丁(重要)及windows补丁要及时安装喔.
快溜 2011-12-05
  • 打赏
  • 举报
回复
程序没有释放资源?。
唐诗三百首 2011-12-05
  • 打赏
  • 举报
回复
关系的因素很多,
1.SQL Server的内存配置是否正确,建议使用自动管理内存,
如果32位win+32位sql+大于4G内存,应开启AWE选项.

2.web程序,在web server iis里可以设置连接池的使用,
里面有[内存回收]的选项.

3.也可能是程序的写法问题,ADO组件连接数据库的参数是否正确.
  • 打赏
  • 举报
回复
看了下一楼的给的资料,貌似介绍的内容和我输出的结果不一样
2楼说得有道理。我看了下这程序确实很多地方SQL语句比较浪费
4楼的方法试过。好像没什么效果。

谢谢大家了。先结贴。有问题再来请教。
-晴天 2011-12-04
  • 打赏
  • 举报
回复
执行一下

DBCC FREESYSTEMCACHE ( 'ALL' )

再看看.
--小F-- 2011-12-04
  • 打赏
  • 举报
回复
并发数量太大?有没有去试试跟踪一下?用SQL PROFILER
fanzhouqi 2011-12-04
  • 打赏
  • 举报
回复
看 free,大多数内存是在free 状态的。也就是说,sql server 向系统申请了 内存,来执行sql 语句
但是,当语句完成的时候 sql server 并没有 释放给内存。

为什么没释放,因为系统还没有到 内存枯竭的状况。系统不会去向sql server 要求释放内存。
如果 系统内存不够用了,就会要求sql server 释放内存。free 也就会变小。

其实问题不大,lz 不需要太担心。

如果感觉还是使用太高,lz 可以优化一下sql 语句,尽量差必要的数据,不要使用select *。
也可以优化索引,减少从io 读入到buffer 的数据。这样既能提高io 也能减少内存的使用量
-晴天 2011-12-04
  • 打赏
  • 举报
回复
参考:
http://support.microsoft.com/?id=907877

我再怎么说也没它说得对.

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧