In course of time number of application users may increase. And capacity of Oracle servers may be insufficient. At this situation you have to buy additional hardware resources. To buy additional resources means that spend extra money and time. But Oracle Shared Server come to help and it can be stopped your headaches.
You know Oracle database service users via creating server process. As default one server process service only one user process (dedicated server process), one-to-one relationship. But shared server process can service multiple user process, one-to-many relationship. It is a quite useful method for minimizing usage of hardware resources.
Although shared server process is useful method, it cannot be applied to every application type. Which application type is suitable? Applications that have small transactions and that returning small result set are good. Because of number of server processes is limited, dealing bigger result sets reduce response time.
In dedicated server environment an user request assigns to one server process directly. However in shared server environment an request is treated by a dispatcher process. A dispatcher process is responsible for servicing user requests. It has ability for servicing many ones.
Dispatchers put the requests that coming from user into request queue. The requests prepared by shared server process put into response queue and these are returned the user by dispatcher. Although all dispatchers use same request queue each dispatchers have own response queue.
When being switched dedicated server to shared server , some changes occur in memory structure. The some session informations are holded in PGA are began to be held in SGA. This area is called User Global Area(UGA).
Finally note that Oracle Shared Server is a scalability enhancement option, not a performance enhancement option. This is summary of above explanations.
