SGA и PGA в конфигурации базы данных Oracle - PullRequest
0 голосов
/ 31 августа 2018

Я знаю, что SGA (который содержит данные и управляющую информацию для одного экземпляра базы данных Oracle) расшифровывается как System Global Area, а PGA (который содержит данные и управляющую информацию исключительно для использования процессом Oracle) обозначает глобальную область программы, но я не очень понимаю, что функция переменных делает с базой данных. Как это поможет при получении данных, если SGA настроен примерно в 10 раз больше, чем PGA?

1 Ответ

0 голосов
/ 31 августа 2018

SGA - это структура памяти на сервере, которая содержит пулы для хранения кода, SQL, классы, курсоры и т. Д. И кэши для хранения данных. Поэтому, когда клиент отправляет запрос на сервер, код и данные помещаются в SGA для обработки СУБД на сервере.

PGA является областью общей памяти для пользовательского серверного процесса и используется для временного хранения и рабочих областей. Oracle использует табличные пространства PGA и temp для работы с набором результатов, который передается обратно клиенту, а затем освобождает PGA для сеанса.

Нет никакого отношения между ними. Размер SGA определяется в зависимости от того, сколько кода и данных отправляется на сервер, а PGA является динамическим в зависимости от того, сколько процессов активно. Если есть тысячи процессов, PGA может легко удвоить SGA. SGA измерен ОЧЕНЬ тщательно, хотя; увеличение размера не обязательно делает его лучше по соображениям производительности.

Существует также UGA (глобальная область пользователя), которая является областью памяти для каждого клиентского (не серверного) процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...