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