Database connection

A connection is required to send commands and receive answers, usually in the form of a result set.

Once a connection has been built it can be opened and closed at will, and properties (such as the command time-out length, or transaction, if one exists) can be set.

Database connections are finite and expensive and can take a disproportionately long time to create relative to the operations performed on them.

This "state" includes server-side cursors, temporary products, connection-specific functional settings, and so on.

For example, the application may use a connection for too long when too many clients attempt to access the web site or one or more operations are blocked or simply inefficient.