Разница между SGA (системной глобальной областью) и PGA (программной глобальной областью) в Oracle Database заключается в том, для чего используются эти области памяти. 13
SGA — это часть общей памяти, которую разделяют между собой все серверные процессы, включая фоновые. 1 Данные и управляющие структуры в SGA являются разделяемыми, и все фоновые процессы Oracle и пользовательские процессы могут к ним обращаться. 3 SGA размещается в памяти при запуске экземпляра Oracle и освобождает память при останове. 2 Каждый запущенный экземпляр Oracle имеет свою собственную SGA. 2
PGA — это память пользовательского процесса. 3 Для каждого подключения к базе данных Oracle выделяет PGA в памяти машины и, кроме того, — PGA для фоновых процессов. 3 Эта область памяти содержит данные и управляющую информацию одного процесса и между процессами не разделяется. 3 В PGA располагаются области сортировки, области хешей и другие структуры процесса. 3
Таким образом, SGA важна для всей базы данных, а PGA — для отдельного процесса. 3 В крупных OLTP-базах данных SGA намного больше и важнее, чем PGA, но в средах хранилищ данных PGA может быть более важной областью памяти, так как она влияет на эффективность сортировок и хеширования больших объёмов данных. 1