Oracle DB – Client Request Process

oracle

Can any body please explain how Oracle DB handles the client request ? is it creates new user process for every connection to db ?

I had look in oracle docs, seems there is concept 'Dedicated and Shared Server process' this was not clear to me. Oracle DB experts please help

Best Answer

In Oracle 10G, regardless of whether dedicated or shared mode is used the client always reaches the listener first: to determine whether the instance is available. In dedicated server mode, from then on, there is one server process for each client (user process) that directly handles the client.
In shared server mode, the listener passes back the address of a dispatcher process to the client to submit requests.

Oracle has 3 types of processes:

  • Server processes connect to user processes and run on the database server.

  • User processes run on the database client.

  • Background processes run on the database server and populate the PGA memory areas read and owned by the server processes. In dedicated server mode, the PGA memory area is held by the server process and contains the data needed by the client. In shared server mode all the data that would have been in the PGA is stored in the SGA except for the server process stack space.


  • In Dedicated Server Mode: There is One Server Process for Every User Process.

  • In Shared Server Mode: The user processes all connect to a dispatcher and there are fewer server processes to reduce the process count on the server.
    There is one request queue shared by all the requestors, but there are individual response queues for each client.

The TNS connect string is different for shared server mode. After the client program connects, the client program doesn't know whether the database is running in dedicated or shared server mode, but the performance of each mode is different (shared server is not intended for high throughput applications)..