Обзор структур памяти БД Oracle

Рубрика: Управление Памятью

База данных Oracle создает и использует структуры памяти в различных целях.

Структуры Памяти БД Oracle

Например, память хранит выполняемый код программ, данные, которые совместно используются среди пользователей, и частные области данных для каждого соединенного пользователя. Две основных структуры памяти ассоциированы с экземпляром:

  • Системная Глобальная область (SGA): Группа структур совместно используемой памяти, известных как компоненты SGA, которые содержат данные и управляющую информацию для одного экземпляра БД Oracle. SGA совместно используется всеми серверными и фоновыми процессами. Примеры данных, хранимых в SGA, включают блоки кэшированных данных и совместно используемые области SQL.

  • Глобальные программные области (PGA): Области Памяти, которые содержат данные и управляющую информацию для серверного или фонового процесса. PGA является неразделяемой памятью, создаваемой БД Oracle, когда серверный или фоновый процесс запускается. Доступ к PGA является монопольным для серверного процесса. У каждого серверного и фонового процесса есть своя собственная PGA.

SGA является областью памяти, которая содержит данные и управляющую информацию для экземпляра. SGA включает следующие структуры данных:

  • Разделяемый пул: Кэширует различные конструкции, которые могут быть совместно использованы среди пользователей

  • Буферный кэш базы данных: Кэширует блоки данных, получаемые из базы данных

  • Пул буферов хранения: Специализированный тип буферного кэша базы данных, который настраивается, чтобы хранить блоки данных в памяти в течение долгих промежутков времени

  • Пул буферов удаления: Специализированный тип буферного кэша базы данных, который настраивается, чтобы быстро удалять блок из памяти

  • Буферный кэш nK: Один из нескольких специализированных буферных кэшей базы данных, разработанных, чтобы содержать блоки размеров, отличающиеся от размера блока базы данных по умолчанию

  • Буфер журнала транзакций: Кэширует информацию о транзакциях (используемую, например, при восстановлении), пока она не будет записана в физические файлы журналов транзакций, хранимые на диске

  • Большой пул: Опциональная область, которая обеспечивает большие выделения памяти для определенных больших процессов, таких как резервное копирование Oracle и операции восстановления, а также серверные процессы ввода-вывода

  • Пул Java: Используется для всего специфичного для сеанса кода Java и данных в виртуальной машине Java (JVM)

  • Потоковый пул: Используется Oracle Streams, чтобы хранить информацию, требуемую для захвата и применения

Когда Вы запускаете экземпляр при использовании Enterprise Manager или SQL*Plus, объем памяти, выделенный для SGA, выводится на экран.

Глобальной Программной областью (PGA) является область памяти, которая содержит данные и управляющую информацию для каждого серверного процесса. Серверный процесс Oracle обслуживает запросы клиента. У каждого серверного процесса есть своя собственная частная PGA, который создается, когда серверный процесс запускается. Доступ к PGA является монопольным для этого серверного процесса, и PGA читается и пишется только кодом Oracle, действующим от своего имени. PGA делится на две главных области: стековое пространство и Пользовательская Глобальная область (UGA).

С динамической инфраструктурой SGA размеры буферного кэша базы данных, совместно используемого пула, большого пула, пула Java и Потокового пула могут изменяться без завершения работы экземпляра.

База данных Oracle использует параметры инициализации, чтобы создавать и управлять структурами памяти. Самый простой способ управлять памятью состоит в том, чтобы позволить базе данных автоматически управлять и настраивать ее для Вас. Чтобы сделать это (на большинстве платформ), необходимо только установить целевые параметры инициализации размера памяти (MEMORY_TARGET) и параметр инициализации максимального размера памяти (MEMORY_MAX_TARGET).

Далее: Планирование производительности

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)