Dedicated vs. Oracle Database Tips by Donald Burleson. The Oracle multithreaded server MTS, later renamed "shared servers" was developed way-back in the days of Oracle7 when RAM was very expensive and RAM region sizes were severely limited by bit technology. Oracle shared servers are also inappropriate for ERP packages that spawn and hold database connections within the application server layer. Bobby Durrett notes that shared servers make sense in rare cases where you have a farm of web servers connecting to your Oracle database, a case where connection pooling makes sense.
2 - Articles Related
Dedicated Server Processes
Oracle Database creates server processes to handle the requests of user processes connected to an instance. A server process can be either of the following:. Your database is always enabled to allow dedicated server processes, but you must specifically configure and enable shared server by setting one or more initialization parameters. Figure , "Oracle Database Dedicated Server Processes" illustrates how dedicated server processes work. In this diagram two user processes are connected to the database through dedicated server processes. In general, it is better to be connected through a dispatcher and use a shared server process. A shared server process can be more efficient because it keeps the number of processes required for the running instance low. In the following situations, however, users and administrators should explicitly connect to an instance using a dedicated server process:. To submit a batch job for example, when a job can allow little or no idle time for the server process. To request a dedicated server connection when Oracle Database is configured for shared server, users must connect using a net service name that is configured to use a dedicated server.
The server process is not shared by any other client. PMON registers information about dedicated server processes with the listener. This enables the listener to start a dedicated server process when a client request arrives and forward the request to it. The following two figures show the basic difference between the shared server connection model and the traditional dedicated server connection model. In the shared server model, a dispatcher can support multiple client connections concurrently.
The shared server architecture also enables existing applications to scale up without making any changes to the application itself. When using shared server, clients do not communicate directly with a database's server process—a database process that handles a client's requests on behalf of a database. Instead, client requests are routed to one or more dispatchers. The dispatchers place the client requests on a common queue. An idle shared server from the shared pool of server processes picks up and processes a request from the queue. This means a small pool of server processes can serve a large number of clients. The following two figures show the basic difference between the shared server connection model and the traditional dedicated server connection model. In the shared server model, a dispatcher can support multiple client connections concurrently.