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. We have had some outages on the weekend caused by a sudden burst in web server generated database activity. In the past the CPU load would spike and log file sync commit waits would be 20 times slower and we would have to bounce the database and web servers to recover.
2 - Articles Related
Enabling Session Multiplexing
When client load causes a strain on memory and other system resources, database administrators can alleviate load issues by starting shared server resources. The shared server architecture enables a database server to allow many client processes to share very few server processes, so the number of users that can be supported is increased. With the shared server architecture, many client processes connect to a dispatcher. The dispatcher directs multiple incoming network session requests to a common queue. An idle shared server process from a shared pool of server processes picks up a request from the queue. This means a small pool of server processes can serve a large number of clients. This is useful when a system is overloaded or has limited memory. Shared memory resources for dispatchers, virtual circuits, and shared servers are preconfigured enable shared servers at runtime. You do not need to restart the instance after setting the parameters.
Dedicated Server Processes
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.
This chapter discusses the processes in an Oracle database system and the different configurations available for an Oracle system. All connected Oracle users must run two modules of code to access an Oracle database instance. Oracle database server code: Each user has some Oracle database code executing on his or her behalf, which interprets and processes the application's SQL statements. These code modules are run by processes. A process is a "thread of control" or a mechanism in an operating system that can run a series of steps. Some operating systems use the terms job or task. A process normally has its own private memory area in which it runs.