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:.
Dedicated Server Processes
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. Multiple-process Oracle also called multiuser Oracle uses several processes to run different parts of the Oracle code and additional processes for the users—either one process for each connected user or one or more processes shared by multiple users. Most database systems are multiuser, because one of the primary benefits of a database is managing data needed by multiple users at the same time.
Welcome to Reddit,
This is a knowledge sharing forum, not a help, how-to, or homework forum, and such questions are likely to be removed. Dedicated server and shared server in oracle 19c self. To keep from typing a lot of text here's a link to an Oracle document that describes the two connection architectures, however there is a statement in it that I, and I believe most Oracle DBAs, would consider to be dated. In my 25 years of DBA work across a wide variety of applications, I've only configured shared server once, and that was in All dedicated server tasks allocate their PGA memory, which holds the working memory for client tasks, out of the system heap. Since the memory from the heap is attached directly to the dedicated task, no other tasks need to be able to access that memory.
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. In the dedicated server model, there is one server process for each client. Each time a connection request is received, a server process is started and dedicated to that connection until completed.