Учебники

DB2 — Буферные бассейны

Эта глава знакомит вас с Bufferpools в базе данных.

BUFFERPOOL

Вступление

Буферный пул является частью основного пространства памяти, которое выделяется менеджером базы данных. Целью буферных пулов является кэширование таблицы и индексирование данных с диска. Все базы данных имеют свои собственные буферные пулы. Пул буферов по умолчанию создается во время создания новой базы данных. Он называется «IBMDEFAULTBP». В зависимости от требований пользователя, можно создать несколько буферных пулов. В пуле буферов менеджер базы данных помещает данные строки таблицы в виде страницы. Эта страница остается в пуле буферов до тех пор, пока база данных не будет закрыта или пока в пространство не будут записаны новые данные. Страницы в пуле буферов, которые обновляются данными, но не записываются на диск, называются «грязными» страницами. После того, как обновленные страницы данных в пуле буферов будут записаны на диск, пул буферов будет готов принять другие данные.

Связь между табличными пространствами и буферными пулами

Каждое табличное пространство связано с конкретным буферным пулом в базе данных. Одно табличное пространство связано с одним буферным пулом. Размер пула буферов и табличного пространства должен быть одинаковым. Несколько буферных пулов позволяют вам сконфигурировать память, используемую базой данных, чтобы повысить ее общую производительность.

Размеры буфера

Размер страницы буферного пула задается при использовании команды «CREATE DATABASE». Если вы не укажете размер страницы, он примет размер страницы по умолчанию, равный 4 КБ. После создания пула буферов невозможно изменить размер страницы позже.

Список доступных буферных пулов в текущем каталоге базы данных

Синтаксис : [Синтаксис ниже показывает все доступные буферные пулы в базе данных]

db2 select * from syscat.bufferpools   

Пример : [Чтобы увидеть доступные буферные пулы в текущей базе данных]

db2 select * from syscat.bufferpools  

Выход:

BPNAME      BUFFERPOOLID DBPGNAME   NPAGES      PAGESIZE    ESTORE 
NUMBLOCKPAGES BLOCKSIZE   NGNAME
------------------------------------------------------------ 
IBMDEFAULTBP                                                                                                                
 1 -                                                                                                  
 -2        4096 N                  0           0 -     
 
 1 record(s) selected.   

Создание буферного пула

Чтобы создать новый пул буферов для сервера базы данных, вам понадобятся два параметра, а именно «имя буферного пула» и «размер страницы». Следующий запрос выполняется для создания нового пула буферов.

Синтаксис: [В приведенном ниже синтаксисе «bp_name» указывает имя пула буферов, а «размер» указывает размер страницы, которую необходимо объявить для буферных пулов (4K, 8K, 16K, 32K)]

db2 create bufferpool <bp_name> pagesize <size> 

Пример : [Создать новый пул буферов с именем «bpnew» и размером «8192» (8Kb).]

db2 create bufferpool bpnew pagesize 8192  

Выход

DB20000I The SQL command completed successfully.  

Отбрасывание буферного пула

Перед удалением пула буферов необходимо проверить, назначено ли ему какое-либо табличное пространство.

Синтаксис : [Чтобы удалить буферный пул]

drop bufferpool <bp_name>  

Пример : [Чтобы удалить ‘bpnew’ с именем bufferpool]

db2 drop bufferpool bpnew  

Выход