Oracle - パフォーマンスチューニング - インデックスの作成指針

<標準B*ツリーインデックス>
・※カーディナリティが高い列に有効<ビットマップインデックス>
・カーディナリティが低い列に有効

※ カーディナリティとは

列値の種類が少ないか多いか
少ない場合はカーディナリティが低いと言う
例えば性別など(男:女)

有効な索引

有効--
1.大規模な表の1%から2%程度の行を頻繁に検索する場合。
2.列の値の重複が少ない場合。
3.WHERE句の条件として、頻繁に使用される列がある場合

有効ではない--
1.列の値が何種類かに限定される場合
2.NULL値が多く、NULLでない値を検索しない場合。
3.表が小規模である場合


CREATE INDEX 索引名
ON 表名 (列名)

    • 機能しなくなってしまうSQL

1.複合索引の場合は一個目の列がWHERE句に入っていないと機能しない
2.LIKE検索の前検索・LENGTH関数を使用した場合は機能しない

まぁ〜どっちにしても実行計画みながら調整する。