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

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

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

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

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

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

2.Connection在using结束后会回到连接池,效率浪费不会很明显。
LoveCherry 2006-11-11
  • 打赏
  • 举报
回复
close不是真正的断开连接,只不过是还给链接池,你可以测试一下有连接池的情况下10000次打开关闭操作会用到多少时间,再测试一下没有连接池的情况下10000次打开关闭会用多少时间

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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