Hitachi

Hitachi Advanced Data Binder AP開発ガイド


5.2 SQL文の実行時に使用されるB-treeインデクスおよびテキストインデクス

B-treeインデクスおよびテキストインデクスは性能に大きな影響を及ぼすため,探索条件に合ったB-treeインデクスおよびテキストインデクスを定義する必要があります。

ここでは,SQL文の実行時に使用されるB-treeインデクスおよびテキストインデクスの決定方法と,SQL文の実行時に使用されるインデクスを確認する方法について説明します。

なお,この節では,インデクスと表記されている場合,B-treeインデクスおよびテキストインデクスの両方を意味しています。

留意事項
  • この節で説明しているインデクスの決定方法は,内部導出表の展開後の問合せ式,または探索条件の等価変換によって変換された探索条件に対して適用されます。内部導出表の展開については,マニュアルHADB SQLリファレンス内部導出表を参照してください。探索条件の等価変換機能については,「5.11 探索条件の等価変換」を参照してください。

  • 探索条件中に指定した値式で,スカラ演算中に定数だけを指定している場合,そのスカラ演算を定数と見なすことがあります。定数と等価なスカラ演算については,マニュアルHADB SQLリファレンス値式の指定形式および規則規則にある表定数と等価な値式となる条件を参照してください。

  • インデクス指定がある場合,ここで説明するインデクスの優先順位や選択規則とは関係なく,インデクス指定に従って使用されるインデクスが決定されます。インデクス指定については,マニュアルHADB SQLリファレンスインデクス指定の指定形式および規則を参照してください。

  • 表を結合する際,表の結合方式によっては結合条件の評価時にインデクスを使用しないことがあります。表の結合方式については,「5.5 表の結合方式」を参照してください。

  • カラムストア表にはテキストインデクスを定義できません。

重要

カラムストア表に定義したB-treeインデクスは,次の場合に使用されます。

  • インデクス指定を指定した場合

    インデクス指定については,マニュアルHADB SQLリファレンスインデクス指定の指定形式および規則を参照してください。

  • 集合関数MINまたはMAXを指定した場合

  • SELECT DISTINCTを指定した場合

  • UNIONまたはUNION DISTINCTを指定した場合

  • EXCEPTまたはEXCEPT DISTINCTを指定した場合

  • INTERSECTまたはINTERSECT DISTINCTを指定した場合

  • =ANY指定の限定述語を指定した場合

  • 表副問合せを指定したIN述語を指定した場合

  • UPDATE文の更新対象表にカラムストア表を指定した場合

  • DELETE文の削除対象表にカラムストア表を指定した場合

  • カラムストア表のコスト情報を収集している場合

注※

HADBサーバがB-treeインデクスを有効に利用できると判断した場合に限り,B-treeインデクスが使用されます。

使用されるB-treeインデクスを確認する方法については,「5.2.5 SQL文の実行時に使用されるインデクスを確認する方法」を参照してください。

〈この節の構成〉