
229
導
入
編
1
設
計
編
ア
キ
テ
ク
チ
ャ
編
2
3
4
5
6
7
4
デックスがなければ、フルスキャンで検索されます。Bツリーインデックス
では、検索する条件の列にインデックスが作成されていても、LIKEによる
部分一致で検索を行う場合には、後方一致や中間一致ではインデックスを使
用できません。Bツリーインデックスでは、キー値の範囲によってブロック
を辿ることで検索を行いますが、後方一致や中間一致ではキー値の範囲を判
断できません。また、Bツリーインデックスでは、データベース製品の組込
み関数を使った場合にも、インデックスが適用されません。組込み関数の結
果の値でインデックスを作成しないためです。Oracleでは、ファンクショ
ンインデックスを使用することで解決します。Bツリーインデックスでは、
NULL値のインデックスを作成できません。インデックスを使ったNULL値
での検索は、ビットマップインデックスを作成することで解決します。NOT
EQUALSを検索の条件にすると、インデックスが使われないことがあります。
主キーにはインデックスが自動的に作成されます。インデックスが作成され
ている列のあるテーブルに対して行の挿入(INSERT)、更新(UPDATE)、
削除(DELETE)を行うと、インデックスがない場合に比べてオーバーヘッ
ドが発生し、処理に時間がかかります。
テーブルの複雑な結合は、パフォーマンスの低下につながります。データ
ベース設計では、テーブルの正規化を崩す方法があります。データベース論
理設計で検討したテーブルの正規化ですが、データを照会 ...