关于c#:.NET / SQL Server中的连接池?

关于c#:.NET / SQL Server中的连接池?

Connection Pooling in .NET/SQL Server?

在使用SQL Server数据库在.NET中开发应用程序时,编写自定义连接池代码是否必要或有利? 我知道ADO.NET为您提供了启用/禁用连接池的选项 - 这是否意味着它已内置到框架中而我不需要担心它? 为什么人们谈论编写自己的连接池软件,这与ADO.NET中内置的有何不同?


ADO.Net内置的连接池非常强大且成熟。我建议不要试图编写自己的版本。


我不是真正的专家,但我知道ADO.NET有自己的连接池系统,只要我一直在使用它,它就是完美的。

我的反应是重新发明轮子是没有意义的...只要确保你完成它们后关闭你的连接,一切都会好的!

我希望别人可以给你一些更坚定的东西!


我的理解是,在使用SqlConnection对象时,会自动为您处理连接池。这是专为与MSSQL配合使用而设计的,可确保有效地汇集连接。您只需要确保在完成它们时关闭它们(并确保它们被丢弃)。

我从未听说过人们需要自己动手。但我承认我的经历有点局限。


随着ADO.Net的出现和更新版本的SQL连接池在两个层上处理,首先通过ADO.Net本身,其次通过SQL Server 2005/2008直接处理,无需自定义连接池。

我被告知,正在计划或已经在Oracle和MySQL中实施了类似的支持。


好吧,它将会消失,因为所有这些问题的答案都将是LINQ。顺便说一句,我们从来没有为我们的任何应用程序需要自定义连接池,所以我不确定所有的噪音是什么。


推荐阅读