C#SQLConnection池

Bud*_*aya 15 c# sql-server ado.net sqlconnection

任何人都可以向我简要介绍如何在ADO.Net中进行连接池,我需要连接到3个独立的数据库.其中2个在同一服务器中,另一个在另一个服务器中.

更好的代码片段..

Mar*_*ell 14

只要您严格处理连接,默认情况下(至少对于sql-server)就是它会自动运行.在您的示例中,您最好只有3个底层连接(每个连接字符串一个).

始终确保您的连接处置,理想情况下using:

using(var conn = new SqlConnection(connectionString)) {
    // use conn
}
Run Code Online (Sandbox Code Playgroud)

然后它被释放回池中(当接下来看到相同的连接字符串时重新使用),即使抛出异常也是如此.

禁用池(如果选择),请Pooling=false;在连接字符串中包含.


gbn*_*gbn 8

不需要特别配置或设置任何东西,只是让它发生...我见过的大多数问题是由于民间没有关闭连接或太聪明

每个连接字符串创建池,因此在这种情况下您有三个


Uwe*_*eim 5

某些提供程序提供连接池.据我所知,这包括Microsoft Access数据库(Jet)和SQL Server CE(精简版)的连接字符串.

缺少连接池会使数据库访问速度显着降低.

丢失的Jet池的解决方案是让我在整个程序生命周期内始终与Jet数据库建立一个单独的连接(与推荐的技术相反).这极大地加速了我在.NET应用程序中的Jet Access数据库SQL查询,但也只适用于本地Jet数据库; 对于网络共享上的Jet数据库,我得到了关于太多打开文件句柄的相对快速的异常.

对于SQL Server CE,到目前为止我找不到解决方案.