日期:2014-05-19  浏览次数:20493 次

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 -.-