.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 中的连接池?的主要内容,如果未能解决你的问题,请参考以下文章

SQL_Server2008数据连接池

如何查看 oracle weblogic server11g集群连接池最大容量

实体框架 1 中的连接池 [重复]

tomcat 6..0.20 连接池配置 SQL server 2000数据库

连接池线程池定时任务应用启动

SQL SERVER连接池