
A concurrent connection is the number of connections available to your
database in any given second.
How are database connections different from ssh/ftp/telnet connections?
There are two types of database connections: OLTP and Persistent.
An OLTP database connection is the standard connection type for web
transactions, and lasts only as long as a transaction takes to complete,
and then disconnects. So, you can have a limit of 10 transactions in a
single second, but a transaction takes a fraction of a second to complete.
A persistent database connection uses a single connection to conduct multiple
transactions. With either type of connection, you'll find it requires
a lot of traffic to exceed the maximum number of connections in any given
second.
Why do we limit concurrent connections?
By setting limits on concurrent connections, we ensure your transactions
get through, and other users don't hinder your use of the system.
Oracle in a shared environment is much different than running Oracle
on a dedicated server. In a shared environment, concurrent connections
to the database become a key limitation. This is because a separate Oracle
process is required to handle each connection in an Oracle database, and
each process may require up to 2 MB of memory. All database installations-even
Dedicated installations of Oracle and others-limit the number of concurrent
connections based on the upper limit of memory and CPU available.
For example, consider an shared Oracle server with 30 customer accounts
at 100 concurrent connections per account. If each customer averaged only
30% of their maximum-or 33 connections per customer-the total number of
concurrent connections would average 990. At 2 MB per process, the machine
would be using 1980 MB RAM. This does not include shared memory for database
buffering, or any memory for core OS/DB processes. In addition, at 990
concurrent connections, a great deal of processor time is burned just
handling context switches. Under these circumstances, the server would
slow to a crawl very quickly.
Limiting concurrent connections enables us to dedicate more memory to
each individual process to dramatically increase the performance of your
queries. Because of these precautions, complex transactions run much faster
than with other databases. More dedicated memory is available to each
process, and a high amount of system memory is dedicated to buffering.
If there are limits on concurrent connections, why would I want Oracle
instead of other databases?
Oracle offers a lot of benefits over other databases. But it's not for
everyone. Consider the following benefits of Oracle:
- High data integrity
- Better Web performance
- True scalability, including the ability to move from Shared, to Dedicated,
to Clustered servers as your needs grow
- Mission-critical recovery services such as Point-In-Time Recovery
of any data object