Database connections can often be 'expensive' to create for a number of reasons:
- The overhead of establishing a network connection.
- The initialisation of a database connection session in the back end
Both of these often require (what can be) time consuming processing to perform user authentication, establishing transactional contexts and establish other aspects of the session that are required for any subsequent database usage.
Not only does this affect the database that you are connecting to, but it can also affect the performance of the application making the database queries.
These issues can significantly limit the scalability of your application and the speed of operation.
Imagine a popular eCommerce site for example where tens of thousands of visitors all need access to a common set of data from your database, establishing the authentication and connection overheads every time you connect to the back-end would slow your operation right down and lead to lost visitors.
This is where connection pooling comes in. It's a technique used to maintain active connections in memory for efficient re-use, and typically uses advanced management for the total number of connections an application might use simultaneously.
As with our eCommerce example above, it's particularly useful for server-side web applications, a connection pool is the standard way to maintain a 'pool' of active database connections in memory, which are then reused across query requests.
If this connection was to Salesforce.com for example then 'connection pooling' would save valuable API calls.
It also allows an application to keep the connection to the database open so that it can reuse it for the next query instead of having to disconnect and reconnect for each query that needs to be run.
At Easysoft we support business applications by supporting connection pooling through our Driver Manager.