Db2-bufferpools

提供:Dev Guides
移動先:案内検索

DB2-バッファープール

この章では、データベースのバッファプールを紹介します。

bufferpool

前書き

バッファプールは、データベースマネージャによって割り当てられるメインメモリ空間の一部です。 バッファプールの目的は、ディスクからテーブルとインデックスのデータをキャッシュすることです。 すべてのデータベースには独自のバッファプールがあります。 新しいデータベースの作成時にデフォルトのバッファプールが作成されます。 「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.