来自 here
我无法理解
他们说 ado.net 不包含连接池机制。
1) 如果我使用 datareader
类,该类使用 web.config
文件中的连接字符串 - 它会有/不会有轮询机制?
2) 如果我的所有 sql 连接代码都使用 web.config 连接字符串,是否会启用连接池?或不?
3)默认值是什么?
最佳答案
SQL Server 和 Oracle SQL提供程序实现连接池。
ADO.NET 作为一个框架没有这个概念 - 例如,没有 ConnectionPool
类。如果您查看数据库类型的基类,它们没有任何连接池支持 - 比较 DbConnection
至SqlConnection
,例如。
回答您的问题:
如果提供程序实现了连接池,则它可以使用它。尽管连接池设置是通过连接字符串控制的(如果提供程序支持这些选项),但这取决于您正在使用的提供程序,而不是连接字符串。
SQL Server 和 Oracle提供程序是实现池化的 - 它们将读取连接字符串设置,但连接池是否可用取决于提供程序(如果连接字符串禁用池化并且它在提供程序中可用,提供程序将禁用它)。
默认情况下使用连接池(如果可用)(这取决于提供商)。
关于asp.net - 连接池的误解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9045381/