.net连接池

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

当我使用using键时,例如:

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

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

您可以在此处阅读有关连接池的信息 。

基本上只要连接字符串相同(包括大小写),就会从同一个连接池中获取连接。

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

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

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

如果您不使用, 则应确保尽快调用Connection.Close() 。 特别是如果您的应用程序处于某种forms的负载。

连接池的管理是使用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; 

更多详细说明和validation池的方法http://www.codeproject.com/KB/dotnet/ADONET_ConnectionPooling.aspx

我所知道的,

连接池由ado.net客户端管理,因为与db建立连接是一项代价高昂的操作。 ado.net建立连接池,无论何时需要连接,它都会尝试从池中提供连接。 即使您说客户端代码关闭连接,ado.net也会保留该连接供以后使用。 你没有管理池

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

SQL连接默认是连接池。 (最大池大小= 100)

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

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

连接池意味着一旦打开连接对象,然后再一次又一次地重新创建连接,Ado.Net将连接对象存储或缓存在Pooler中。 稍后,如果某人打开连接,那么它将不会执行它已经执行的一系列步骤,现在它只是简单地连接已经缓存的连接池的连接。

一旦我们完成了对数据库的操作,我们需要关闭连接,然后该连接将返回到池,并准备好在下一个Open调用中重用它。

阅读更多连接池的最佳示例: – http://www.gurujipoint.com/2017/07/what-is-connection-pooling-in-aspnet.html