.NET/SQL Server 中的连接池是什么?

11

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

5个回答

15

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


3

我并不是这方面的真正专家,但我知道ADO.NET有自己的连接池系统,而且在我使用它的时候一直很可靠。

我的反应是没有必要重新发明轮子……只需在完成后关闭连接,一切都会好起来!

希望其他人能给你更加确切的答案!


2

我的理解是,当使用SqlConnection对象时,连接池会自动处理。这是专门为MSSQL设计的,可以确保连接被高效地池化。您只需要确保在完成使用后关闭它们(并确保它们被处理)。

我从未听说过有人需要自己编写连接池。但我承认我的经验在这方面有些有限。


1
随着ADO.Net的出现和SQL连接池的更新版本,连接池处理分为两层:首先是通过ADO.Net本身处理,其次是由SQL Server 2005/2008直接处理,消除了自定义连接池的需要。
我已经得知,Oracle和MySQL也在计划或已经实施类似的支持。

-2

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接