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