.NET/SQL Server 中的连接池?
Posted
技术标签:
【中文标题】.NET/SQL Server 中的连接池?【英文标题】:Connection Pooling in .NET/SQL Server? 【发布时间】:2010-09-05 17:05:45 【问题描述】:在使用 SQL Server 数据库在 .NET 中开发应用程序时,编写自定义连接池代码是否必要或有利?我知道 ADO.NET 为您提供了启用/禁用连接池的选项——这是否意味着它内置在框架中并且我不需要担心它?为什么人们谈论编写自己的连接池软件,这与 ADO.NET 中内置的软件有何不同?
【问题讨论】:
【参考方案1】:ADO.Net 内置的连接池功能强大且成熟。我建议不要尝试编写自己的版本。
【讨论】:
【参考方案2】:我不是这方面的真正专家,但我知道 ADO.NET 有自己的连接池系统,只要我一直在使用它,它就完美无缺。
我的反应是,重新发明***没有意义……只要确保在完成连接后关闭它们,一切都会好起来的!
希望其他人能给你一些更坚定的答案!
【讨论】:
【参考方案3】:我的理解是在使用SqlConnection对象的时候会自动为你处理连接池。这是专门为与 MSSQL 一起使用而设计的,并将确保有效地汇集连接。您只需要确保在使用完它们后关闭它们(并确保它们被丢弃)。
我从未听说过有人需要自己滚动。但我承认我的经验有限。
【讨论】:
【参考方案4】:随着 ADO.Net 的出现,较新版本的 SQL 连接池在两层上进行处理,首先通过 ADO.Net 本身,其次通过 SQL Server 2005/2008 直接处理,从而消除了对自定义连接池的需要。
我已获悉,出于兴趣,正在计划或已在 Oracle 和 mysql 中实施类似的支持。
【讨论】:
【参考方案5】:好吧,它将会消失,因为所有这些问题的答案都将是 LINQ。顺便说一句,我们的任何应用程序都不需要自定义连接池,所以我不确定所有这些噪音是关于什么的。
【讨论】:
以上是关于.NET/SQL Server 中的连接池?的主要内容,如果未能解决你的问题,请参考以下文章
如何查看 oracle weblogic server11g集群连接池最大容量