6.1.2 推奨する登録運用
推奨するXML Extensionの登録運用には,次の3種類があります。
-
UAPの更新およびバッチ登録による運用
-
プラグインインデクスの遅延一括作成による運用
-
インデクス作成方法に初期分割登録を指定してインデクスを作成する運用
また,これらに加えて,次の2種類の登録運用があります。
-
登録・検索同時実行による運用
-
インデクス作成方法に分割遅延登録を指定してインデクスを作成する運用
以降,各運用方法について説明します。
- 〈この項の構成〉
(2) プラグインインデクスの遅延一括作成による運用
(a) 運用方法
UAPでバッチ運用をする場合に推奨します。
削除要求(UPDATE文またはDELETE文)は即時反映しますが,追加要求は即時反映をしないためデータの整合性が確保できません。したがって,検索運用中の使用は推奨しません。
プラグインインデクスの遅延一括作成については,マニュアル「HiRDB システム運用ガイド」を参照してください。
(3) インデクス作成方法に初期分割登録を指定してインデクスを作成する運用
(a) インデクス作成方法指定の定義
インデクス作成方法指定に初期分割登録を定義してください。
(b) 運用方法
表に大量のXMLデータまたは文字列データを登録したあと,限られた時間単位でインデクスへXMLデータを登録する場合に使用を推奨します。インデクス作成開始ユティリティによって,すべてのXMLデータまたは文字列データがインデクスに登録されるまでは,データの整合性を確保できません。したがって,すべてのXMLデータまたは文字列データをインデクスに登録する前に検索を実行する場合には,使用を推奨しません。インデクス作成開始ユティリティの詳細については,「3.2.8 phjstartidx(インデクス作成開始ユティリティ)」を参照してください。
- 注意
-
-
インデクス未登録状態のXMLデータまたは文字列データがなくなれば,UAPによるデータ更新の運用,バッチ登録による運用,プラグインインデクスの遅延一括作成による運用に移行できます。
-
(4) 登録・検索同時実行による運用
(a) 登録・検索同時実行の定義
登録・検索同時実行を定義してください。
(b) 運用方法
SQLによる更新系トランザクションが,検索系トランザクションと同時に実行される環境での使用を推奨します。
- 注意
-
-
インデクス未作成の場合の更新系トランザクション,またはHiRDBのプラグインインデクスの遅延一括作成を使用している場合のINSERT文によって登録する更新系トランザクションは複数同時に実行できますが,それ以外の更新系トランザクションは複数同時に実行できません。
-
HiRDBが提供しているユティリティによる登録と検索系トランザクションは同時に実行できません。また,XML Extensionの一部のユティリティと検索系トランザクションは同時に実行できません。詳細は「3. XML Extensionのユティリティ」を参照してください。
-
インデクスLOB用RDエリアに対してグローバルバッファを指定してください。グローバルバッファを指定しない場合に比べて,登録性能が向上します。
-
同時実行を設定している場合,データの整合性確保のために,一時的に排他制御をします。このため,同時実行を設定していない場合に比べて,排他制御によるオーバヘッドが掛かります。
-
ほかのユーザが更新中(トランザクションが終了していない状態)のXMLデータを検索できます。
-
(5) インデクス作成方法に分割遅延登録を指定してインデクスを作成する運用
(a) 分割遅延登録用インデクスの定義
分割遅延登録用インデクスを定義するには,次の方法があります。
-
定義系SQLのCREATE INDEXによって定義します。
-
「phjmodidx(インデクス情報変更ユティリティ)」によって,インデクス定義を分割遅延登録用インデクスに変更します。
(b) 運用方法
UAPでバッチ運用する場合,次の手順で運用することを推奨します。
-
INSERT文またはUPDATE文を使用してデータを登録します。
-
運用の合間に,遅延されている情報をMASTERインデクスへ反映します。
インデクスの作成は,インデクス作成開始ユティリティを使用して実行します。インデクス作成開始ユティリティの詳細については,「3.2.8 phjstartidx(インデクス作成開始ユティリティ)」を参照してください。
-
検索処理とインデクス作成を同時実行する場合は,ユティリティ実行時に同時実行指定(-w nowait)を指定します。また,サーバ側の定義を登録・検索同時実行で定義します。
-
分割遅延登録を開始および終了する場合は,インデクス分割遅延登録運用変更ユティリティを使用します。運用形態に合わせて選択してください。インデクス分割遅延登録運用変更ユティリティの詳細については,「3.2.9 phjdelay(インデクス分割遅延登録運用変更ユティリティ)」を参照してください。
- 注意
-
-
削除要求(UPDATE文またはDELETE文)は即時反映します。しかし,追加要求は即時反映をしないため,データの整合性が確保できません。そのため,インデクス未作成XMLデータに対して検索が必要である場合は推奨しません。
-
分割遅延登録用領域の使用率が100%になると,それ以上分割遅延登録を実行できません。100%にならないように,インデクスへ反映してください。インデクスへの反映を時間・件数で中断する場合は,使用率は下がりません。
使用率を下げるためには,すべての未反映XMLデータまたは文字列をインデクスに反映してください。分割遅延登録用領域を使い切った場合のSQLコマンドについては,環境定義ファイルによって,エラーリターン/即時更新を選択できます。
-
即時更新へ切り替える際に,インデクス未登録XMLデータがあるときはすべて登録します。時間・件数による中断はできないので注意してください。
-
(6) 推奨する組み合わせ
登録運用を実行する場合の推奨するパラメタの組み合わせを次の表に示します。
- 項番1に適した業務
-
インデクス作成または更新をバッチで実行し,かつ,インデクス作成中にほかの業務を実行しない業務に適しています。なお,この業務では,データ更新と同時に全文検索を実行しないことが条件となります。
- 項番2に適した業務
-
インデクス作成または更新をバッチで実行し,かつ,インデクス作成中に検索を実行する業務に適しています。この場合,検索時には,SELECT文の排他オプションにWITHOUT LOCK NOWAITだけが指定できます。なお,この業務では,データ更新と同時に全文検索を実行しないことが条件となります。
- 項番3に適した業務
-
インデクス作成開始ユティリティを10〜30分間隔で定期的に実行して,データの更新から少しあと(10分〜1時間後)に,全文検索を実行する業務に適しています。また,インデクス作成,更新,または更新中に更新系SQLを実行する必要がある業務にも適しています。なお,検索時には,SELECT文の排他オプションにWITHOUT LOCK NOWAITだけが指定できます。