VB中adodb.recordset 变量很会吃内存,如何才能使变量释放内存? 20
代码是这样的:dimrssetrs=newadodb.recordsetprivatetimer1_timer()‘每2秒执行一次rs.open"select*fromt...
代码是这样的:
dim rs
set rs=new adodb.recordset
private timer1_timer() ‘每2秒执行一次
rs.open "select * from table where dTime='"& now() & "'",conn,1,1
........
rs.close
end sub
rs.open 这一句执行完,sqlserver.exe这个进程占用的内存就变大。。使用一久,内存就爆满了。。
即时加上 set rs=nothing,也不会释放内存。。怎样才可以使rs变量能够释放内存,让sqlserver.exe进程不会吃内存??(最好能附上代码。。)
就没人知道吗??那些VB专家呢? 展开
dim rs
set rs=new adodb.recordset
private timer1_timer() ‘每2秒执行一次
rs.open "select * from table where dTime='"& now() & "'",conn,1,1
........
rs.close
end sub
rs.open 这一句执行完,sqlserver.exe这个进程占用的内存就变大。。使用一久,内存就爆满了。。
即时加上 set rs=nothing,也不会释放内存。。怎样才可以使rs变量能够释放内存,让sqlserver.exe进程不会吃内存??(最好能附上代码。。)
就没人知道吗??那些VB专家呢? 展开
展开全部
首先你这个问题不属于VB范畴,SQLSERVER.EXE吃内存那是你的SQL SERVER数据库本身的问题,假如你的机器是专门的数据库服务器的话不用理会他,因为SQL SERVER认为自己是专业的数据库程序,默认这个机器就是为了让他自己专用的(实际上很多大型数据库都是这个样子,专业领域不会出现一个数据库服务器身兼多职的情况),为了使性能最大话,他一旦使用并开辟内存后就不会再释放(释放及重新开辟内存是需要时间的),所以当你使用数据量较大的查询操作时数据库服务发现原有开辟占用的内存不够他就会向系统申请,用完也不会释放。所以你要是想解决数据库内存占用问题请搜索“sqlservcer 内存占用”就好,里面有详细的解释及解决办法(实际上就是你限定SQL SERVER的最大内存占用值)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询