Db2-bufferpools
DB2-バッファープール
この章では、データベースのバッファプールを紹介します。
前書き
バッファプールは、データベースマネージャによって割り当てられるメインメモリ空間の一部です。 バッファプールの目的は、ディスクからテーブルとインデックスのデータをキャッシュすることです。 すべてのデータベースには独自のバッファプールがあります。 新しいデータベースの作成時にデフォルトのバッファプールが作成されます。 「IBMDEFAULTBP」と呼ばれます。 ユーザーの要件に応じて、いくつかのバッファプールを作成することができます。 データベースマネージャは、バッファプールにテーブル行データをページとして配置します。 このページは、データベースがシャットダウンされるか、スペースに新しいデータが書き込まれるまで、バッファプールに残ります。 データで更新されるがディスクに書き込まれないバッファプール内のページは、「ダーティ」ページと呼ばれます。 バッファプール内の更新されたデータページがディスクに書き込まれた後、バッファプールは別のデータを取得する準備ができています。
テーブルスペースとバッファプールの関係
各表スペースは、データベース内の特定のバッファープールに関連付けられています。 1つのテーブルスペースは1つのバッファプールに関連付けられています。 バッファプールとテーブルスペースのサイズは同じでなければなりません。 複数のバッファプールを使用すると、データベースで使用されるメモリを構成して、全体的なパフォーマンスを向上させることができます。
バッファプールのサイズ
バッファプールページのサイズは、「CREATE DATABASE」コマンドを使用するときに設定されます。 ページサイズを指定しない場合、デフォルトのページサイズである4 KBが使用されます。 バッファプールが作成されると、後でページサイズを変更することはできません
現在のデータベースディレクトリで使用可能なバッファプールを一覧表示する
構文:[以下の構文は、データベースで利用可能なすべてのバッファプールを示しています]
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.
バッファプールを作成する
データベースサーバーの新しいバッファプールを作成するには、「バッファプール名」と「ページのサイズ」という2つのパラメータが必要です。 次のクエリを実行して、新しいバッファプールを作成します。
構文:[以下の構文では、「bp_name」はバッファプール名を示し、「size」はバッファプール用に宣言する必要があるページのサイズを示します(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>
例:[bufferpoolという名前の「bpnew」を削除するには]
db2 drop bufferpool bpnew
出力
DB20000I The SQL command completed successfully.