Connection pooling allows you to reuse connections rather than create a new one every time the data provider needs to establish a connection to the underlying database. The ADO.NET Client automatically enables connection pooling for your ADO.NET Client application.
You can control connection pooling behavior by using connection string options (see Specifying Connection Options). For example, you can define the number of connection pools, the number of connections in a pool, and the lifetime of pooled connections.
Connection pooling in ADO.NET is not provided by the .NET Framework. It must be implemented in the .NET data provider itself.