• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

[讨论]关于数据库链接关闭问题。

离子漂浮物 2006-11-10 09:30:13
一、今天在测试Access的链接关闭时发现一个奇怪的现象。

我的测试如下:
在需要操作数据库时进行数据库链接(以下简称dataconn,数据库链接关闭简称为dataclose)。
在Page_PreRender事件内手动关闭链接。

然后出现一个奇怪的现象,网页运行后出现了Access的ldb文件,用wholockme查看Mdb文件,发现锁定进程是aspnet_wp.exe。表明数据库链接仍然被保持着,并未被关闭。

然后直接按F5调试,发现dataconn和dataclose的次数成对,即打开多少次就关闭多少次,应该不会出现数据库锁定才是。
---------------------------------------------------------------------------------------
二、用using,会造成多次的dataconn和dataclose才能完成一次页面的呈现,这个会不会对性能方面照成不必要的消耗呢。
...全文
146 点赞 收藏 3
写回复
3 条回复
离子漂浮物 2006年11月12日
真的是非常感谢,提到链接池我才想起查看sdk关于链接池的资料。资料上来看,同样的链接代码。不管打开关闭多少次链接使用的始终只是一个链接池,直到链接池失效。所以,使用using控制是完全没问题的。

有关资料来源:SDK2.0中《使用连接池》的《池的创建和分配》
回复 点赞
CatChen 2006年11月11日
1.在你连接mdb数据库后,就算Connection.Close()了,也并非合该mdb完全断绝关系的——Connection会返回连接池,看看接下来还有没有连接该mdb的需求,aspnet_wp.exe也不会就此断开,同样是从效率的角度来考虑这个问题,因为很可能你马上又要连接了。

2.Connection在using结束后会回到连接池,效率浪费不会很明显。
回复 点赞
LoveCherry 2006年11月11日
close不是真正的断开连接,只不过是还给链接池,你可以测试一下有连接池的情况下10000次打开关闭操作会用到多少时间,再测试一下没有连接池的情况下10000次打开关闭会用多少时间
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告