ALTER BUFFERPOOL ステートメント
ALTER BUFFERPOOL ステートメントは、バッファー・プールの特性または動作を変更する場合に使用します。 ALTER BUFFERPOOL ステートメントを使用する理由は、例えばセルフチューニング・メモリーを使用可能にするためなど、いくつかあります。
ALTER BUFFERPOOL ステートメントによって、以下のようにバッファー・プールを変更できます。
- すべての メンバー または単一の メンバー のバッファー・プールのサイズを変更する。
- バッファー・プールの自動サイジングを使用可能あるいは使用不可に設定する。
- このバッファー・プール定義を新規のデータベース・パーティション・グループに追加する。
- ブロック・ベース入出力用のバッファー・プールのブロック域を変更する。
呼び出し
このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。
許可
このステートメントの許可 ID が持つ特権には、SYSCTRL または SYSADM 権限が含まれている必要があります。
構文
説明
- バッファー・プール名
- バッファー・プールの名前を指定します。 これは、1 部構成の名前です。 これは、SQL ID です (通常 ID または区切り ID)。 バッファー・プールは、カタログで記述されている必要があります。
- IMMEDIATE または DEFERRED
- バッファー・プールのサイズが直ちに変更されるようにするかどうかを指示します。
- IMMEDIATE
- バッファー・プールのサイズが直ちに変更されます。 メモリーを共有するデータベース内に新規スペースを割り振るのに十分な予約済みのスペースがない場合 (SQLSTATE 01657)、 このステートメントは DEFERRED で実行されます。
- DEFERRED
- データベースが再活動化される時に (すべてのアプリケーションがデータベースから切断される必要があります)、バッファー・プールのサイズが変更されます。 予約済みメモリー・スペースは不要です。 活動化の際に、データベースがシステムから必要なメモリーを割り振ります。
- MEMBER メンバー番号
- バッファー・プールのサイズが変更される メンバー を指定します。 例外エントリーが、SYSCAT.BUFFERPOOLEXCEPTIONS システム・カタログ・ビューで作成されます。 メンバー は、バッファー・プールのデータベース・パーティション・グループの 1 つになければなりません (SQLSTATE 42729)。 この節を指定しない場合、バッファー・プールのサイズは、 SYSCAT.BUFFERPOOLEXCEPTIONSに例外項目があるものを除くすべての メンバー で変更されます。
- SIZE
- バッファー・プールの新規サイズを指定するか、このバッファー・プールのセルフチューニングを使用可能または使用不可に設定します。
- ページ数 (number-of-pages)
- 新規のバッファー・プール・サイズに対応するページ数。 バッファー・プールが既にセルフチューニング・バッファー・プールになっている場合に、SIZE number-of-pages 節を指定すると、この変更操作によりこのバッファー・プールのセルフチューニングは使用不可になります。
- AUTOMATIC
- このバッファー・プールのセルフチューニングを使用可能に設定します。 データベース・マネージャーは、作業負荷の要件に応じてバッファー・プールのサイズを調整します。 ページ数を指定すると、現行のバッファー・プール・サイズがその値に設定されます。 ただし、据え置きキーワードも指定する場合は例外で、その場合、ページ数は無視されます。 その後にデータベースを活動化する際には、セルフチューニング・メモリー・マネージャー (STMM) によって判別される最後のチューニング値に基づいてバッファー・プール・サイズが決まります。 STMM は自動バッファー・プールに対する最小サイズを適用します。 それは現行サイズと 5000 ページのうちの小さい方になります。 セルフチューニングを使用可能にしてあるバッファー・プールの現在のサイズを判別するには、MON_GET_BUFFERPOOL ルーチンを使用してバッファー・プールの現行サイズを調べてください。 バッファー・プールのサイズは、bp_cur_buffsz モニター・エレメントにあります。 AUTOMATIC が指定された場合、MEMBER 節は指定できません (SQLSTATE 42601)。
- ADD DATABASE PARTITION GROUP db-partition-group-name
- バッファー・プール定義が適用されるデータベース・パーティション・グループのリストに、 このデータベース・パーティション・グループを追加します。 バッファー・プールが定義されていないデータベース・パーティション・グループにあるメンバーについては、バッファー・プールに指定されているデフォルト・サイズを使用して、 このメンバーにバッファー・プールが作成されます。 db-partition-group-name 内の表スペースは、このバッファー・プールを指定できます。 データベース・パーティション・グループは、現在データベースに存在している必要があります (SQLSTATE 42704)。
- NUMBLOCKPAGES number-of-pages
- ブロック・ベース域に存在していなければならないページ数を指定します。 ページ数は、SYSCAT.BUFFERPOOLS 内の NPAGES 値に基づき、バッファー・プールのページ数の 98% 以下でなければなりません (SQLSTATE 54052)。 値 0 を指定すると、ブロック入出力は不可になります。 使用されている NUMBLOCKPAGES の実際の値は、BLOCKSIZE の倍数になります。
Db2® pureScale® 環境では、NUMBLOCKPAGES はサポートされていません (SQLSTATE 56038)。
- BLOCKSIZE ページ数 (number-of-pages)
- ブロック内のページ数を指定します。 ブロック・サイズの値は、2 から 256 でなければなりません (SQLSTATE 54053)。 デフォルト値は 32 です。
BLOCKSIZE は、 Db2 pureScale 環境 ではサポートされていません (SQLSTATE 56038)。
注
- バッファー・プール・サイズのみが動的に (直ちに) 変更可能です。 他のすべての変更は据え置かれ、 データベースが再活動化された後にこれらの変更は効力を持つようになります。
- このステートメントが据え置かれて実行される場合には、バッファー・プール定義はトランザクションで、バッファー・プール定義に対する変更はコミット時にカタログ表に反映されますが、実際のバッファー・プールに対する変更は、次回にデータベースが始動されるまでは有効になりません。 それまではバッファー・プールの現行の属性が存在し、 その間バッファー・プールには何の影響もありません。 新しいデータベース・パーティション・グループの表スペースに作成された表は、 デフォルトのバッファー・プールを使用します。 キーワードが適用される際のこのステートメントのデフォルトは、IMMEDIATE です。
- すべてのバッファー・プールの合計と、 その他のデータベース・マネージャーやアプリケーションの要件に合うように、 マシンに十分な実メモリーが必要です。
- 代替構文: Db2 の以前のバージョンとの互換性のために、以下の代替の構文がサポートされています。 およびその他のデータベース製品。 これらの代替は非標準であり、使用すべきではありません。
- DB2_ENFORCE_MEMBER_SYNTAX レジストリー変数が ON に設定されている場合を除き、DBPARTITIONNUM または NODE を MEMBER の代わりに指定できます。
- DATABASE PARTITION GROUP の代わりに NODEGROUP を指定できます。