Управление памятью Oracle

Оценить
(1 голос)

Oracle применяет выделенную область памяти, совместно используемую системными и теневыми процессами, и кроме этого персональные области памяти, используемые индивидуальными теневыми процессами.

Область памяти совместного использования базы данных играет ключевую роль в функционировании экземпляра Oracle. Она предусматривает область хранения, которая совместно используется такими объектами, как блоки базы данных и оптимизированные операторы SQL, и может быть кэширована для использования другими процессами. Она также облегчает связь между системными процессами Oracle (например, информация о совместном блокировании). Oracle относится к этой области памяти совместного использования как к SGA (system global area - системной глобальной области).

SGA состоит из следующих основных компонентов:

•             Буферный кэш блоков данных. Представляет собой один из наиболее важных элементов высокопроизводительного экземпляра СУБД Oracle. Он выполняет кэширование данных и индексных блоков, блоков сегментов отката и временных табличных областей, позволяя наиболее часто используемым блокам БД быть готовыми к чтению со стороны других приложений без привлечения операций дискового ввода/вывода. Размер буферного кэша контролируется параметром db_block_buffers в файле init.ora; этот параметр касается количества блоков, но не количества байтов, поэтому он зависит от количества байтов в db_block_size. Начиная с Oracle9i, был включен новый параметр -db_cache_size. Он описывает количество байтов в буферном кэше. Oracle9i также поддерживает табличные области с различными размерами блоков, поэтому был введен новый набор параметров буферного кэша: например, db_2k_cache_size для табличных областей с блоками, имеющими размер

2             Кбайт. Для получения более детальной информации смотрите раздел "Установка настраиваемых параметров для рабочих нагрузок OLTP" в главе 22.

Несмотря на то, что Oracle не предусматривает выделенные кэши для таблиц или табличных областей, в Огас1е8 представлены два новых буферных пула: keep и recycle, определяемые соответственно параметрами buf £er_pool_keep и buffer_pool_recycle в файле init.ora. Эти параметры определяют количество блоков размером db_block_buf fers, которые необходимо выделить соответственно для пулов хранения и утилизации. Поэтому размер основного буферного кэша уменьшается на сумму размеров buf f er_pool_keep и buffer_pool_recycle.

Стратегия нормального кэширования буферного пула основана на алгоритме замещения LRU (least recently used - наиболее давней по использованию страницы), что означает первоочередное опорожнение самых старых буферов. Напротив, буферы в пуле хранения никогда не выгружаются, поэтому пул полезен для небольших таблиц с наиболее частым к ним обращением, которые необходимо постоянно удерживать в памяти. Буферы в пуле утилизации выгружаются мгновенно, что исключает необходимость поддержки списка LRU и сокращает время, затрачиваемое на ожидание буферов. Пул утилизации полезен для тех данных, которые редко используются повторно.

Установка настраиваемых параметров для рабочих нагрузок OLTP
Хранение физических данных
Файлы журналов отката
Управляющие файлы
Сегменты

Добавить комментарий


Защитный код
Обновить