Параметры старта буферного пула
Буферный пул базы данных – это область в разделяемой памяти, которая содержит буферы базы данных. Буферы базы данных предназначены для хранения копий блоков базы данных, содержащих записи из таблиц или индексы. Буферы базы данных служат рабочей областью для CRUD (Create, Read, Update, Delete) -операций.
Буферы базы данных являются крупнейшим потребителем ресурсов разделяемой памяти. Чем больше будет доступно буферов базы данных, тем меньше будет выполняться операций дискового ввода-вывода, и тем лучше будет производительность базы данных. Увеличение количества буферов базы данных повышает производительность за счёт сведения к минимуму частоты извлечения записей с диска, так как запрашиваемые записи уже будут находиться в памяти, а также за счёт сокращения операций записи на диск, так как большее количество доступных буферов позволяет изменённым записям дольше оставаться в памяти.
Кроме того, если используется лицензия OpenEdge Enterprise RDBMS, то администратор может разделить буферный пул на две логически отдельные области, каждая из которых будет содержать собственный набор буферов базы данных – эти области называются первичный буферный пул и альтернативный буферный пул.
Как правило, альтернативный буферный пул используется для хранения часто используемых справочных данных, которые должны находиться в памяти постоянно. Первичный буферный пул применяется для хранения часто изменяемых данных. Это позволяет более точно настроить объём памяти в каждом пуле, повышая производительность базы данных.
Рассмотрим параметры старта для обоих видов буферного пула.
Перед использованием первичного и альтернативного буферных пулов необходимо вычислить общее количество буферов базы данных для обоих пулов. Обычно в качестве стартового значения общий размер буферного пула устанавливается равным 10% от размера базы данных. Для этого можно применить следующую формулу:
TotNumOfDBBuff = DBSize / DBBlockSize * 0,1
Далее используя некоторый процент, как правило больший от полученного значения, например, 80%, рассчитывается размер первичного буферного пула. Полученное число устанавливается в качестве значения для параметра старта базы данных Database Buffers (-B).
Синтаксис параметра старта базы данных Database Buffers (-B):
-B <кол-во буферов первичного пула>
Затем оставшийся процент (20% в нашем примере) используется для расчёта размера альтернативного буферного пула. После чего полученное значение используется в качестве значения для параметра старта базы данных Alternate Buffer Pool (-B2).
Синтаксис параметра старта базы данных Alternate Buffer Pool (-B2):
-B2 <кол-во буферов альтернативного пула>
Предположим, что размер базы данных равен 1024000 КБ, а размер блока базы данных равен 4КБ. Первоначальный общий размер буферного пула будет равен 1024000 КБ / 4 КБ * 0,1 = 25600 КБ.
Таким образом, значение для параметра первичного буферного пула (-B) в нашем примере равно 25600 * 0,8 = 20480, а значение параметра для альтернативного буферного пула (-B2) равно 25600 * 0,2 = 5120. В файл параметров старта базы данных необходимо добавить следующие параметры:
-B 20480 -B2 5120
Представленная методика расчёта размеров буферных пулов предназначена главным образом для определения начальных размеров буферных пулов. В ваших базах данных соотношение может отличаться.