XXXXX-Y
6.1 推奨するデータ登録の運用方法
方式 長所 短所
バッチ登録による運用 • 一括してデータ更新ができます
• 1 件ずつデータ登録するよりもログ 量が削減できます※
なし
プラグインインデクスの遅延一括作成に よる運用
• UAP のスループットが通常の更新に 比べて向上します
• ログ量はバッチ登録と同等です
• 登録データの検索がインデクスを作 成するまで実行できません
• インデクスは別途作成する必要があ ります。この間,処理中の XML 型 および IXXML 型に対する検索およ びデータ更新はできません
• UPDATE 文を実行した場合,元 データは削除されるため,検索対象 外となります
インデクス作成方法に初期分割登録を指 定してインデクス作成をする運用
• インデクス作成時の処理時間が短く なります
• インデクスへの XML データまたは 文字列データの登録を時間を区切っ て実行できます
• ログ量はバッチ登録と同じです
• インデクス未登録状態の XML デー タまたは文字列データは,検索対象 になりません
• インデクス作成開始ユティリティを 実行し,インデクスへ XML データ または文字列データを登録する必要 があります
• インデクス未登録状態の XML デー タまたは文字列データは,インクリ メンタルの対象外になります 分割遅延登録による運用 • UAP のスループットが通常の更新と
比べて向上します
• ログ容量はバッチ登録と同等です
• インデクス作成時に,時間と件数を 指定できます
• 登録・検索同時実行と併用できます
• 登録データの検索がインデクスを作 成するまで実行できません
• UPDATE 文を実行した場合,元 データは削除されるため検索対象外 となります
注※
1 件ずつ登録する場合,ログ量は通常の更新と同じです。
表 6‒2 登録・検索同時実行による運用の長所および短所
方式 長所 短所
登録・検索同時実行による運用 • SQL による単数の更新系トランザク ションと,複数の検索系トランザク ションを同時に実行できます
• インデクス未作成の場合,複数の更 新系トランザクションを同時に実行 できます
• ほかのユーザが更新中(トランザク ションが終了していない状態)の XML データまたは文字列データを検 索できます
• XML Extension のデータの整合性 を確保する排他制御のため,オーバ ヘッドが掛かります。また,排他制 御が競合した場合,一時的に待ち時 間が発生します
方式 長所 短所
• ロールバックによる回復処理中の RD エリアに対して検索した場合,「回復 中であるため,検索できない」とい うエラーになる場合があります 登録・検索同時実行を使用しない運用 • XML Extension のデータの整合性
確保のための排他制御によるオーバ ヘッドが掛かりません
• 共用メモリは不要です
• 更新系トランザクションと,ほかの トランザクションを同時に実行でき ません
6.1.2 推奨する登録運用
推奨する XML Extension の登録運用には,次の 3 種類があります。
• UAP の更新およびバッチ登録による運用
• プラグインインデクスの遅延一括作成による運用
• インデクス作成方法に初期分割登録を指定してインデクスを作成する運用 また,これらに加えて,次の 2 種類の登録運用があります。
• 登録・検索同時実行による運用
• インデクス作成方法に分割遅延登録を指定してインデクスを作成する運用 以降,各運用方法について説明します。
(1) UAP の更新およびバッチ登録による運用
(a) 運用方法
通常の HiRDB の運用に準じます。
(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 エリアに対してグローバルバッファを指定してください。グローバルバッ ファを指定しない場合に比べて,登録性能が向上します。
• 同時実行を設定している場合,データの整合性確保のために,一時的に排他制御をします。このた め,同時実行を設定していない場合に比べて,排他制御によるオーバヘッドが掛かります。
(5) インデクス作成方法に分割遅延登録を指定してインデクスを作成する運用
(a) 分割遅延登録用インデクスの定義
分割遅延登録用インデクスを定義するには,次の方法があります。
• 定義系 SQL の CREATE INDEX によって定義します。
•「phjmodidx(インデクス情報変更ユティリティ)」によって,インデクス定義を分割遅延登録用イン デクスに変更します。
(b) 運用方法
UAP でバッチ運用する場合,次の手順で運用することを推奨します。
1. INSERT 文または UPDATE 文を使用してデータを登録します。
2. 運用の合間に,遅延されている情報を MASTER インデクスへ反映します。
インデクスの作成は,インデクス作成開始ユティリティを使用して実行します。インデクス作成開始ユ ティリティの詳細については,「3.2.8 phjstartidx(インデクス作成開始ユティリティ)」を参照して ください。
3. 検索処理とインデクス作成を同時実行する場合は,ユティリティ実行時に同時実行指定(-w nowait)
を指定します。また,サーバ側の定義を登録・検索同時実行で定義します。
4. 分割遅延登録を開始および終了する場合は,インデクス分割遅延登録運用変更ユティリティを使用しま す。運用形態に合わせて選択してください。インデクス分割遅延登録運用変更ユティリティの詳細につ いては,「3.2.9 phjdelay(インデクス分割遅延登録運用変更ユティリティ)」を参照してください。
注意
• 削除要求(UPDATE 文または DELETE 文)は即時反映します。しかし,追加要求は即時反映をし ないため,データの整合性が確保できません。そのため,インデクス未作成 XML データに対して 検索が必要である場合は推奨しません。
• 分割遅延登録用領域の使用率が 100%になると,それ以上分割遅延登録を実行できません。100%に ならないように,インデクスへ反映してください。インデクスへの反映を時間・件数で中断する場 合は,使用率は下がりません。
使用率を下げるためには,すべての未反映 XML データまたは文字列をインデクスに反映してくだ さい。分割遅延登録用領域を使い切った場合の SQL コマンドについては,環境定義ファイルによっ て,エラーリターン/即時更新を選択できます。
• 即時更新へ切り替える際に,インデクス未登録 XML データがあるときはすべて登録します。時間・
件数による中断はできないので注意してください。
(6) 推奨する組み合わせ
登録運用を実行する場合の推奨するパラメタの組み合わせを次の表に示します。