Oracle Process
A database instance contains or interacts with multiple processes.
- A client process runs the application or Oracle tool code.
- An Oracle process is a unit of execution that runs the Oracle database code. In the multi-threaded architecture, an Oracle process can be an operating system process or a thread within an operating system process.
- A server process performs work based on a client request. Server processes, and the process memory allocated in these processes, run in the database instance. The instance continues to function when server processes terminate.
- A background process starts with the database instance and perform maintenance tasks such as performing instance recovery, cleaning up processes, writing redo buffers to disk, and so on.
- A slave process performs additional tasks for a background or server process.
Server Processes
Oracle Database creates server processes to handle the requests of client processes connected to the instance. A client process always communicates with a database through a separate server process.
Server processes created on behalf of a database application can perform one or more of the following tasks:
- Parse and run SQL statements issued through the application, including creating and executing the query plan
- Execute PL/SQL code
- Read data blocks from data files into the database buffer cache (the DBW background process has the task of writing modified blocks back to disk)
- Return results in such a way that the application can process the information
Dedicated Server Processes
In dedicated server connections, the client connection is associated with one and only one server process. On Linux, 20 client processes connected to a database instance are serviced by 20 server processes. Each client process communicates directly with its server process. This server process is dedicated to its client process for the duration of the session.
Shared Server Processes
In shared server connections, client applications connect over a network to a dispatcher process, not a server process. For example, 20 client processes can connect to a single dispatcher process.
The dispatcher process receives requests from connected clients and puts them into a request queue in the large pool. The first available shared server process takes the request from the queue and processes it. Afterward, the shared server places the result into the dispatcher response queue. The dispatcher process monitors this queue and transmits the result to the client.
Unlike dedicated server processes, where each server process has its own Program Global Area (PGA), in shared server configurations, the User Global Area (UGA) is located in the System Global Area (SGA) so that any shared server can access session data.
Comments
Post a Comment