Hitachi

ノンストップデータベース HiRDB Version 9 パフォーマンスガイド


4.4.2 実表検索処理情報(SCAN)のRow CountとSearch

〈この項の構成〉

(1) インデクスで絞り込めているか確認する

インデクスを使用した検索では,インデクスのサーチ条件で取り出す行を絞り込みます(Search)。そして,絞り込んだ行に対して,インデクスで判定できない探索条件を評価して,行を取り出します(Row Count)。Searchの値とRow Countの値の行数に開きがあると,実行時間が掛かってしまうことがあります。インデクスで絞り込んだ行数と取り出した行数について,次に示します。

図4‒21 インデクスで絞り込んだ行数と取り出した行数の関係

[図データ]

(2) 確認方法

中間結果情報の中で「SCAN」と表示されている個所が,実表検索処理情報です。この下のRow CountとSearchの値に開きがないか確認してください。アクセスパスと実表検索処理情報の出力例を次に示します。

図4‒22 アクセスパスと実表検索処理情報の出力例

[図データ]

(3) 対策方法

サーチ条件で絞り込めていない理由としては,次のことが考えられます。

次のどちらかの対策方法を検討してください。

表4‒11 対策方法

対策方法

説明

インデクス構成列の追加

アクセスパスで「RowCnd」または「IfThenCnd」に表示されている列をインデクスに追加してください。この時,インデクスの構成列の順序は,最も絞り込める列を第1構成列にしてください。

使用するインデクスの変更

アクセスパスで「RowCnd」または「IfThenCnd」に表示されている列に別のインデクスが定義されている場合は,使用するインデクスを変更してください。使用するインデクスはSQL文の使用インデクスのSQL最適化指定(WITH INDEX)で指定します。指定方法は,マニュアル「HiRDB Version 9 SQLリファレンス」の「使用インデクスのSQL最適化指定」を参照してください。

インデクス構成列を追加して対策した結果の例を次に示します。

図4‒23 対策結果例

[図データ]