asp.net 2.0 SQL Server 2005下的一个不理解的问题,高分求解!
大家好
xp sp2 IIS5.1 SQL Server 2005 asp.net2.0下
数据库访问用的微软的企业库,
有一个时时请求数据库的asp.net页面(是做像聊天信息内容更新一样的一个页面),通过dataset每秒访问查询一次数据库。将内容再呈现再页面上。
这时资源管理器中 进程sqlserver.exe 用户network service的 "内存使用 " 不停增长,
离开这个页面即停止增长。但是过很长时间它也并不会再减少,只用重启sql服务才会重新变小。。
请问这是怎么回事,是页面缓存还是SQL Server 2005那里设置的缘故?
sqlserver.exe 用户network service占用的 "内存 "是做什么用的?
怎么解决啊?
高手指点小弟一下吧!!
------解决方案--------------------数据库链接关闭了没有;
------解决方案--------------------连接用完要关闭,NET的回收不是及时的
------解决方案--------------------connection用完必须关闭,需要再用就再打开
我觉得你的流程大致是这样的:
页面载入 - 打开到数据库的链接 - 查询 - (刷新,返回页面载入的步骤)
也就是说,每次你都重新创建了一个到数据库链接的实例,而且没有关闭
另外,1sec刷新1次是不是太快了点……
------解决方案--------------------可以用连接池,优化,但是你参考一下ADO.net 2.0第四章 80页
------解决方案--------------------正常现象,sql server的动态内存分配机制,将大量复杂的查询结果放到内存中,增加查询速度,不要管它,时间长了不使用的内容就自动释放.
------解决方案--------------------应该是SQL临时表造成的吧,缓存
连接用完一定要CLOSE(),对你关闭,其实是放问连接池,不要占着不放
------解决方案--------------------1、如果只是显示的话,不要使用DataSet改用DataTable;
2、db对象使用过之后销毁;
3、不用担心重复连接的效率问题,因为重复的连接是由连接池来管理的,可以参阅一下相关的资料;
------解决方案--------------------你肯定是不停地连接数据库了,那就不停地关吧,再连接
------解决方案--------------------连接过多是xp的iis连接数有限制
用破解的tcpip.sys替换系统自带的即可
也可以用bitcomet0.8以上版本的破解tcpip -.-