Hitachi

Hitachi Advanced Data Binder コマンドリファレンス


16.1.3 adbidxrebuildコマンドのオプション機能

adbidxrebuildコマンドには,次に示すオプション機能があります。

〈この項の構成〉

(1) 再実行機能

adbidxrebuildコマンドが異常終了するなどした場合は,adbidxrebuildコマンドの再実行時に,前回のインデクス再作成で内容が保証されている個所の続きからインデクス再作成処理を実行します。このため,インデクス再作成処理の再実行に掛かる時間を短縮できます。

次に示す条件を満たす場合,再実行機能が適用されることがあります。

なお,次に示す場合,上記の条件を満たしていても,再実行機能は適用されません(インデクス再作成処理の初めから強制実行されます)。

再作成対象のインデクスが定義された表(処理対象表)の定義時にCHUNK を指定したかどうか(処理対象表がシングルチャンク表か,マルチチャンク表か)によって,再実行機能の適用条件,および再実行時の処理が異なります。

処理対象表がシングルチャンク表の場合

インデクス再作成処理では,表データを検索してレンジインデクスを再作成したあとに,B-treeインデクスおよびテキストインデクスを再作成します。

B-treeインデクスおよびテキストインデクスの再作成処理中にadbidxrebuildコマンドが中断した場合,再実行機能が適用されます。adbidxrebuildコマンドを再実行すると,B-treeインデクスおよびテキストインデクスの再作成処理からインデクス再作成処理が再開されます。

図16‒4 再実行機能の概要(シングルチャンク表の場合)

[図データ]

注※

次の順序でインデクスの作成処理が実行されます。

  1. インデクスレコードのソート処理

  2. 1.のソート処理結果を入力情報にしてインデクスを作成

2.の処理中にadbidxrebuildコマンドが中断した場合,再実行機能が適用されます。adbidxrebuildコマンドを再実行すると,2.の処理から再開されます。

なお,サーバ定義のadb_cmd_ixrec_file_useオペランドにREUSABLEを指定した場合は,1.の処理中にadbidxrebuildコマンドが中断したときも,再実行機能が適用されます。adbidxrebuildコマンドを再実行すると,1.の処理から再開されます。

に示すときは,再実行機能が適用されません。

  • レンジインデクスだけを再作成しているとき

  • インデクスレコードのソート処理が完了する前KFAA80220-Iメッセージの出力前)adbidxrebuildコマンドが中断したとき

    ただし,サーバ定義のadb_cmd_ixrec_file_useオペランドにREUSABLEを指定した場合は,表データの検索が完了する前KFAA80233-Iメッセージの出力前)にadbidxrebuildコマンドが中断したとき

  • --create-temp-fileオプションを指定してadbidxrebuildコマンドを実行するとき

メモ

サーバ定義のadb_cmd_ixrec_file_useオペランドについては,マニュアルHADB システム構築・運用ガイドコマンドに関するオペランド(set形式)を参照してください。

処理対象表がマルチチャンク表の場合

処理対象表がマルチチャンク表の場合,インデクス再作成処理はチャンクごとに実行されます。

このため,マルチチャンク表の処理が中断したときは,adbidxrebuildコマンドを再実行すると再実行機能が適用され,処理が中断したチャンクからインデクス再作成処理が再開されます。

ただし,最初のチャンクのインデクスレコードのソート処理が完了する前KFAA80220-Iメッセージの出力前)adbidxrebuildコマンドが中断したときは,再実行機能が適用されません。

注※

サーバ定義のadb_cmd_ixrec_file_useオペランドにREUSABLEを指定した場合,表データの検索が完了する前KFAA80233-Iメッセージの出力前)にadbidxrebuildコマンドが中断したときは,再実行機能が適用されません。

図16‒5 再実行機能の概要(マルチチャンク表の場合)

[図データ]

また,次に示す3つの条件を満たすときは,処理が中断したチャンクのB-treeインデクスおよびテキストインデクスの作成処理から,インデクス再作成処理が再開されます。

  • 再作成するインデクスの中にB-treeインデクスまたはテキストインデクスが含まれている

  • 処理が中断したチャンクのインデクスレコードのソート処理が完了している(ソート処理が完了するとKFAA80220-Iメッセージが出力されます)

    ただし,サーバ定義のadb_cmd_ixrec_file_useオペランドにREUSABLEを指定した場合は,処理が中断したチャンクの表データの検索が完了している(表データの検索が完了するとKFAA80233-Iメッセージが出力されます)

  • adbidxrebuildコマンドの再実行時に,--create-temp-fileオプションを指定していない(--create-temp-fileオプションを指定してadbidxrebuildコマンドを実行すると,処理が中断したチャンクの表データの検索から,インデクス再作成処理が再開されます)

図16‒6 処理が中断したチャンクのB-treeインデクスおよびテキストインデクスの作成処理からの再実行

[図データ]

注※

次の順序でインデクスの作成処理が実行されます。

  1. インデクスレコードのソート処理

  2. 1.のソート処理結果を入力情報にしてインデクスを作成

2.の処理中にadbidxrebuildコマンドが中断した場合,再実行機能が適用されます。adbidxrebuildコマンドを再実行すると,2.の処理から再開されます。

なお,サーバ定義のadb_cmd_ixrec_file_useオペランドにREUSABLEを指定した場合は,1.の処理中にadbidxrebuildコマンドが中断したときも,再実行機能が適用されます。adbidxrebuildコマンドを再実行すると,1.の処理から再開されます。

メモ

サーバ定義のadb_cmd_ixrec_file_useオペランドについては,マニュアルHADB システム構築・運用ガイドコマンドに関するオペランド(set形式)を参照してください。

(2) adbimportコマンドからのインデクス作成処理の引き継ぎ

adbidxrebuildコマンドは,adbimportコマンドからインデクス作成処理を引き継ぐことができます。

次に示す理由でadbimportコマンドを再実行できない場合にadbidxrebuildコマンドを実行すると,adbidxrebuildコマンドがインデクス作成処理を引き継ぎます。

注※

adbidxrebuildコマンドの実行前に処理対象表のインデクスをDROP INDEX文で削除した場合,削除したインデクスは再作成されません。また,adbidxrebuildコマンドの実行前に作成対象のインデクスをすべて削除した場合,コマンドの終了処理だけが実行されます。

adbidxrebuildコマンドに指定するオプションによって,adbidxrebuildコマンドの処理が異なります。

--create-temp-fileオプションを指定してadbidxrebuildコマンドを実行する場合

--create-temp-fileオプションを指定してadbidxrebuildコマンドを実行すると,adbidxrebuildコマンドの処理は,作業用一時ファイルを作成する表データの検索処理から開始されます。

図16‒7 adbimportコマンドからのインデクス作成処理の引き継ぎ(--create-temp-fileオプションを指定する場合)

[図データ]

なお,処理対象表がマルチチャンク表の場合,adbimportコマンドが中断したときに処理中だったチャンクが,adbidxrebuildコマンドの処理対象となります。adbidxrebuildコマンドが正常終了するまで,対象となるチャンクは変更されません。

--forceオプションを指定してadbidxrebuildコマンドを実行する場合

--forceオプションを指定してadbidxrebuildコマンドを実行すると,adbidxrebuildコマンドがインデクス再作成処理の初めから開始されます。

図16‒8 adbimportコマンドからのインデクス作成処理の引き継ぎ(--forceオプションを指定する場合)

[図データ]