C# .net连接池

C# .net连接池,c#,.net,ado.net,connection-pooling,C#,.net,Ado.net,Connection Pooling,我不明白常规连接和连接池之间的语法区别是什么 当我使用键时,使用键,例如: using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); command.ExecuteNonQuery(); } 这是执行连接池的方法吗?您可以阅读有关连接池的内容 基本上,只要连接字符串相同(包括大小写),就可以从同一个连接池进行连接。据我所知 连接池由ado.net客户端管

我不明白常规连接和连接池之间的语法区别是什么

当我使用
键时,使用
键,例如:

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    command.ExecuteNonQuery();
}

这是执行连接池的方法吗?

您可以阅读有关连接池的内容

基本上,只要连接字符串相同(包括大小写),就可以从同一个连接池进行连接。

据我所知

连接池由ado.net客户端管理,因为连接到db是一项成本高昂的操作。ado.net创建连接池,当您需要连接时,它会尝试从连接池中提供连接。即使您对客户端代码说要关闭连接,ado.net也会保留该连接供以后使用。你无法管理池


连接池在应用程序的web.config文件中被告知。当您使用using语句时,告诉您应该在使用结束时释放该对象

SQL连接定义为连接池。 (最大池大小=100)

您可以从连接字符串配置连接池


您可以从中找到有关连接字符串的更多信息。

您不使用连接控制连接池,而是使用连接字符串控制连接池。大多数ADO提供程序默认使用池

using
语句用于调用对象的
Dispose
方法(在本例中为连接类)。这样,连接要么返回到池中,要么根据连接字符串配置断开连接

您还应该注意,如果正在使用分布式事务(
TransactionScope
in.NET4),则连接不会直接返回到池中。事务完成/回滚后,将返回连接


如果您没有使用
use
,您应该确保尽快调用
Connection.Close()
。尤其是当您的应用程序处于某种形式的负载下时。

连接池的管理是使用类似于上面所述的SqlConnection从您那里抽象出来的。默认情况下,ADO.NET连接池是打开的,您可以进一步控制,例如关闭它或控制连接字符串中的池大小,例如

关掉

Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Pooling=false;
或者控制最小值和最大值

Provider=SQLOLEDB;Data Source=localhost;Integrated Security=SSPI;Min Pool Size=5; Max Pool Size=20;
更详细的说明和验证池的方法