13.11.3 例題(リバランス表の横分割数を増やす場合)
リバランス表(TABLE01)の横分割数を二つから三つにします。インデクス(INDX01)も同様に分割します。このように,インデクス格納RDエリアと表格納RDエリアの数が一致しないとリバランスユティリティを実行できません。
- 〈この項の構成〉
(1) pdfmkfsコマンドでRDエリア用のHiRDBファイルシステム領域を作成します
pdfmkfs -n 50 -l 10 -k DB -i C:\rdarea\area03 pdfmkfs -n 50 -l 10 -k DB -i C:\rdarea\area13
- 〔説明〕
-
-n:HiRDBファイルシステム領域の領域長をメガバイト単位で指定します。データベース状態解析ユティリティ(pddbstコマンド)で,現状のRDエリアの状態を解析し,移動対象となるデータ量から追加するRDエリアの容量見積もりをしてください。
-l:HiRDBファイルシステム領域内に作成するHiRDBファイル数の上限値を指定します。
-k:HiRDBファイルシステム領域の用途を指定します。RDエリア用のHiRDBファイルシステム領域を作成するため,DBを指定します。
-i:HiRDBファイルシステム領域の全領域を初期化する場合に指定します。-iオプションを指定すると,領域全体を確保します。-iオプションを省略すると,HiRDBファイルシステム領域の管理情報だけを作成します。
C:¥rdarea¥area03:作成するHiRDBファイルシステム領域(表格納RDエリア用)の名称を指定します。
C:¥rdarea¥area13:作成するHiRDBファイルシステム領域(インデクス格納RDエリア用)の名称を指定します。
(2) pdmodコマンドでRDエリアを追加します
pdmod -a C:\pdmod\create01
- 〔説明〕
-
-a:pdmodコマンドの制御文ファイル名を指定します。制御文ファイルの例を次に示します。各オペランドの詳細については,マニュアル「HiRDB コマンドリファレンス」を参照してください。
create rdarea RDAREA03 globalbuffer gbuf03 for user used by PUBLIC server name bes1 page 4096 characters storage control segment 10 pages file name "C:\rdarea\area03\file01" initial 1000 segments; create rdarea RDAREA13 globalbuffer gbuf13 for user used by PUBLIC server name bes1 page 4096 characters storage control segment 10 pages file name "C:\rdarea\area13\file01" initial 1000 segments;
(3) ALTER TABLEで表の横分割数を増やします
ALTER TABLE TABLE01 ADD RDAREA RDAREA03 FOR INDEX INDX01 IN RDAREA13;
表データ格納用RDエリア(RDAREA03)とインデクス格納用RDエリア(RDAREA13)を追加しました。これで,TABLE01の横分割数が二つから三つに増えました。
(4) pdrbalコマンドで表のリバランスを行います
(a) 共有モードで実行する場合
pdrbal -k share -t TABLE01 -c 100 C:\pdrbal\cfile01
- 〔説明〕
-
-k:共有モードで実行するためshareを指定します。
-t:リバランス表の名称を指定します。
-c:コミット単位を指定します。
C:¥pdrbal¥cfile01:pdrbalコマンドの制御文ファイルの名称を指定します。制御文ファイルの内容を次に示します。
report C:\tmp\output execstop time,9:00
- 〔説明〕
-
report:pdrbalコマンドの実行結果の出力先を指定します。
execstop:pdrbalコマンドの実行時間を指定します。
(b) 占有モードで実行する場合
pdrbal -k exclusive -t TABLE01 -l a C:\pdrbal\cfile01
- 〔説明〕
-
-k:占有モードで実行するためexclusiveを指定します。
-t:リバランス表の名称を指定します。
-l:データベースの更新ログ取得方式を指定します。この例ではa(ログ取得モード)を指定します。
C:¥pdrbal¥cfile01:pdrbalコマンドの制御文ファイルの名称を指定します。制御文ファイルの内容を次に示します。
report C:\tmp\output idxwork C:\index\work sort C:\sort\work
- 〔説明〕
-
report:pdrbalコマンドの実行結果の出力先を指定します。
idxwork:インデクス情報ファイル出力用のディレクトリ名を指定します。
sort:ソート用ワークディレクトリ名を指定します。
(5) pdgetcstコマンドで表の最適化情報を取得します
必要であれば最適化情報収集ユティリティ(pdgetcstコマンド)で表の最適化情報を取得してください。最適化情報収集ユティリティの実行要否については,マニュアル「HiRDB コマンドリファレンス」を参照してください。
pdgetcst -t TABLE01 -l C:\pdgetcst\output
- 〔説明〕
-
-t:最適化情報を取得する表名を指定します。
-l:pdgetcstコマンドの実行結果の出力先を指定します。
コマンドの実行後,実行結果が正しいかどうか確認することをお勧めします。コマンドの実行結果の確認方法については,マニュアル「HiRDB コマンドリファレンス」を参照してください。