Введение
Альтернативный буферный пул представляет собой совокупность буферов в общей памяти, которые логически обособлены от основного буферного пула. Управление альтернативным буферным пулом осуществляется независимо от основного буферного пула. Назначение конкретных областей или объектов для использования альтернативного буферного пула позволяет повысить производительность системы за счет увеличения показателя Buffer Hit Rate. Это достигается путем оптимизации операций чтения и записи буферов с диска и на диск, что приводит к снижению их общего количества.
В некоторых ситуациях основной буферный пул может стать узким местом, негативно влияющим на производительность системы из-за низкого показателя совпадения при поиске блоков данных в буферном пуле (Buffer Hit Ratio). Традиционным методом решения этой проблемы является увеличение размера основного буферного пула через параметр запуска базы данных Buffer Pool (–B). Однако этот метод не всегда применим. Альтернативный буферный пул предоставляет администратору базы данных возможность изменить поведение буферного пула, определяя объекты и области базы данных, которые будут его использовать. Размер альтернативного буферного пула задается параметром запуска базы данных –B2. Как и основной буферный пул, альтернативный использует общую память, и суммарный объем этих двух пулов ограничен максимальным доступным размером памяти.
Управление альтернативным буферным пулом осуществляется отдельно от основного буферного пула. До полного заполнения альтернативного буферного пула используется механизм очереди FIFO (First In – First Out). По достижении полного использования буферов вступает в действие механизм LRU (Least Recently Used), который определяет буферы для вытеснения из памяти. Первым вытесняемым буфером становится тот, который находится в начале очереди FIFO.
Целью использования альтернативного буферного пула является минимизация необходимости применения механизма LRU. Для мониторинга начала работы механизма LRU можно использовать утилиту PROMON. При обнаружении активности механизма LRU администратор базы данных может увеличить размер альтернативного буферного пула с помощью утилиты PROUTIL INCREASETO или исключить некоторые объекты из альтернативного буферного пула. В обоих случаях увеличение количества свободных буферов в альтернативном пуле приведет к деактивации механизма LRU.
При изменении буферного пула для объектов, используемых в данный момент, все существующие буферы остаются в том пуле, в котором они были изначально размещены. Частные буферы (–Bp) всегда размещаются в основном буферном пуле, независимо от выбора пула для объекта.
Области базы данных Control и Recovery не могут использовать альтернативный буферный пул.
Если размер альтернативного буферного пула не указан при запуске базы данных, все объекты и области будут использовать буферы из основного буферного пула.
Выбор объектов для использования альтернативного буферного пула должен основываться на специфике приложения. Оптимальными кандидатами являются активно используемые таблицы и их индексы, а также таблицы и индексы, которые подвергаются шифрованию, так как операции шифрования и дешифрования при чтении блоков с диска и их записи на диск могут снижать производительность. Размещение таких блоков в памяти в альтернативном буферном пуле может способствовать повышению производительности.