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.
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:.
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.
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.