ORACLE SQL リファレンス(逆引き)

ORACLE SQL リファレンス

Web oracle.se-free.com
ファンクション・インデックスの作成
スポンサード リンク

ファンクション・インデックスは、事前にインデックス検索で使用する関数を定義して値を変換させて、ツリー構造を作成します。

Bツリーインデックス列に関数を使用しても、インデックスは使用されずにテーブルフルスキャンになりますが、ファンクションインデックスを作成しておけば、SQL発行時に関数を使用しても、インデックスを使った検索が可能になります。

CREATE [ UNIQUE ] INDEX インデックス名
                 ON 表名 [ (関数名,・・・) ]
                       [ TABLESPACE 表領域名 ]
ファンクション・インデックスの作成


例1) 表「emp」の列「dept_id」に関数「lpad」を指定して、インデックス名「index01」を作成する
create index index01
  on emp( lpad( dept_id, 5) )

DEPT_ID列で、LPAD関数を使用したSQLでインデックスを使用した検索が実行される。
select * from emp
where ( lpad( dept_id,5) ) = 'D01 '


スポンサード リンク

Bツリー・インデックスの作成( B-Tree INDEX )
ビットマップ・インデックスの作成( BITMAP INDEX )
ファンクション・インデックスの作成
インデックスの削除
インデックスの再作成( REBUILD )

SQL(DDL) へ
忘れっぽいエンジニアのオラクルSQLリファレンス TOPへ