Recently I read about the Process of Oracle and want to share my knowledge of it with you all. So, let's begin with it.
ORACLE PROCESSES
We all know that a process performs a job or does a task. Similarly, Oracle processes help in the daily functioning of the Oracle instance and Oracle server. It is are broadly classified as in the following.
1. User Process
User processes are generated at the client end. It could be via Oracle provided tools like sqlplus, SQL Developer or a third-party tool like TOAD (Tool for SQL development and administration) and so on. Each user process is linked to a dedicated server process through which its tasks are performed. A User's request and response is handled by the server process. User Process provides the means of communication among application running at the user end and the Oracle instance.
2. Server Process
The server process is a dedicated process for a user process. Its life begins with a user process and ends with it. That means it's session specific. The server process communicates on behalf of the user process with the Oracle database server. Let's understand with an example. Suppose you queried data in a table, the server process:
- First verifies the syntax of the code,
- Secondly, it then executes that code, if the data is already not present in the memory then
- Thirdly, it reads the data block containing the required data in the memory (database buffer cache),
- Finally, it returns the result of the dataset to the user process, thus displayed to the user via the application.
There are various configurations of the server process depending upon the architecture of the server:
- Dedicated server: In this configuration the user process and server process share a one-to-one relationship. When even a user process tries to connect, a server process is allocated to handle all the user process requests.
- Shared server: Under this architecture, multiple users are present and they share the server process, this helps better utilization of the memory. Here, we can use the connection pooling also where we can utilize the existing timeout connection to address other active connections. Further, session multiplexing can also be useful for conducting multiple sessions over the same connection.
- Database resident connection pooling (DRCP): This is the new feature of the Oracle 11g, it is used for applications that require continuous connection to the database, that ends up using high server resources. To prevent this, a connection broker will be used to allocate a server from a pool of servers, it manages all the connections and once the request is fulfilled it is released.



Join the conversation! Your thoughts help the community grow.