.NET / SQL Server中的连接池?

时间:2020-03-05 18:39:02  来源:igfitidea点击:

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

解决方案

回答

我的理解是,使用SqlConnection对象时,将自动为我们处理连接池。这是为与MSSQL一起使用而专门设计的,将确保有效地合并连接。我们只需要确保在完成处理后就将其关闭(并确保将其丢弃)。

我从未听说有人需要自己动手做。但是我承认我的经验在那儿是有限的。

回答

好吧,因为所有这些问题的答案将是LINQ,所以它将消失。顺便说一句,对于我们的任何应用程序,我们都不需要自定义连接池,因此,我不确定到底是怎么回事。

回答

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

回答

我不是这方面的真正专家,但是我知道ADO.NET具有自己的连接池系统,而且只要我一直在使用它,它就没有问题。

我的反应是重新设计轮子没有任何意义……只要确保在完成连接后就关闭连接,一切都会好起来的!

我希望其他人能给我们更多坚定的答案!

回答

随着ADO.Net的问世和更新版本的SQL连接池在两层进行处理,第一层通过ADO.Net本身,第二层通过SQL Server 2005/2008直接进行,从而消除了对自定义连接池的需求。

我得知,出于兴趣,正在计划或者已经在Oracle和MySQL中实施了类似的支持。