Hi,
All oracle processes requires some memory.
Some objects must be shared among several processes, so they go to SGA (memory that can be addressed by all instance processes)
exemple: data blocks must be shared to manage concurrency on data -> the is buffer cache in SGA
Some objects are used only by one process, so they go to PGA (the process private memory)
exemple: direct reads (without concurrency) or query result sorting -> the session data in UGA is in PGA (if not shared because of shared server configuration)
Some objects are bigger then the available memory, so they are processed in chunks that are swapped to tempfiles.
example: query result sorting -> the workarea to sort or to hash join is written to tempfiles once sorted, in order to sort another chunks, and at the end, they are merged
Regards,
Franck.
Main Topics
Browse All Topics





by: mrjoltcolaPosted on 2009-11-02 at 13:29:24ID: 25723947
SGA is shared memory and stores "shared things" like buffer cache, SQL parse plans, etc.
/docs/cd/B 19306_01/s erver.102/ b14220/toc .htm
By default, PGA is not stored in shared memory. It is heap and stack area for each server process. Things like sorts happen in PGA, among others.
It might help to take a few hours to read through the Oracle Concepts Guide.
http://download.oracle.com