简体   繁体   中英

C# SQLConnection pooling

Can anyone brief me how to do Connection Pooling in ADO.Net, I do need to connect to 3 separate databases. 2 of them are in same server and the other in a separate one.

Better with code snipts..

as long as you are strict about disposing your connections, the default (for sql-server at least) is that it will just work automatically. In your example you could well only have 3 underlying connections (one per connection string).

But always ensure your connections are disposed, ideally with using :

using(var conn = new SqlConnection(connectionString)) {
    // use conn
}

then it is released back to the pool (for re-use when the same connection-string is seen next) even when an exception is thrown.

To disable pooling (if you choose), include Pooling=false; in the connection-string.

Don't need to configure or set anything especially, just let it happen... Most issues I've seen are caused by folk not closing connections or being too clever

The pools are created per connection string so you'd have three in this case

Certain providers do not provide connection pooling. To my knowledge this includes connection strings to Microsoft Access Databases (Jet) and SQL Server CE (Compact edition).

The lack of connection pooling for those make database access remarkably slower.

A solution to the missing Jet pooling was for me to always have one single connection to the Jet database open for the whole program lifetime (contrary to what the recommended technique is). This speeded up my Jet Access database SQL queries from .NET applications tremendously, but also only works on local Jet databases; for Jet databases on network shares, I get relatively fast exceptions about too many open file handles.

For SQL Server CE, I found no solution so far.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM