ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Unified Directory管理者ガイド
11g リリース2 (11.1.2)
B72794-04
  目次へ移動
目次

前
 
次
 

8 Oracle Unified Directory索引モデルの理解

書籍の索引と同様に、Oracle Unified Directoryの索引は、検索文字列をディレクトリの内容に関連付けることによって検索時間を短縮します。

この章では、様々な索引タイプおよび検索を評価する方法について説明します。次の各項で構成されます:

索引の構成の詳細は、第20.7項「ディレクトリ・データへの索引付け」を参照してください。

8.1 索引の概要

Oracle Unified Directoryは、索引を使用して、参照情報をOracle Unified Directoryエントリに関連付けることによって、検索操作を高速化します。各検索操作には、返すエントリを指定する検索キーが含まれます。検索操作中に、サーバーは索引を使用して、検索キーに一致するエントリを見つけます。索引が構成されていない場合、サーバーはすべてのエントリの接尾辞をチェックして、検索キーに一致する可能性があるエントリを特定する必要があります。

ディレクトリ内のすべてのエントリをチェックすることは、特に大規模ディレクトリの場合に、リソースを大量に消費します。さらに、権限を持たないユーザーは、索引付けされていない検索の実行を許可されない可能性があります。索引付けされていない検索を実行する権限の割当ての詳細は、第11章「rootユーザーと特権サブシステムの理解」を参照してください。検索効率を高めるために、クライアントが実行する必要がある検索に対応する索引を構成できます。

この項には次のトピックが含まれます:

8.1.1 索引とは

索引は、検索条件に一致するエントリを効率的に見つけるためにディレクトリ・サーバー・データベースで使用するメカニズムです。索引は、検索キーをIDリストにマップします。IDリストは、その索引キーに一致するエントリのエントリIDの集合です。

8.1.2 索引の重要性の理解

  • ディレクトリ・サーバーに対する検索操作を向上させる最も効率的な方法は、索引を構成し、検索結果に対する索引エントリ制限を定義することです。

  • 索引にはエントリの指定した属性の値のみが格納され、エントリに関する他の詳細は格納されません。これにより領域が節約され、その属性を中心に索引を編成することによって検索が速くなります。索引が付けられている属性で検索を実行する場合、Oracle Unified Directoryはすぐに索引を特定して、検索条件に一致するエントリを探します。

8.2 索引タイプ

Oracle Unified Directoryでは次の索引タイプをサポートしています:

8.2.1 近似索引

近似索引は、検索フィルタで指定されている値と似ている値を比較するために使用します。近似索引の目的は、検索フィルタに似た値に一致するエントリを特定することです。たとえば、cn属性の近似索引を使用した場合、クライアント・アプリケーションは、名前のつづりが間違っていてもエントリを見つけることができます。

8.2.2 等価索引

等価索引は、検索フィルタで指定されている値と正確に一致するエントリを特定します。等価索引は、対応する等価一致ルールが存在する属性にのみ付けることができます。

8.2.3 順序付き索引

順序付き索引は、属性値の相対順序を記録します。等価索引に似ていますが、等価一致ルールではなく、順序付け一致ルールを使用して値を正規化する点が異なります。順序付き索引は、対応する順序付け一致ルールが存在しない属性には付けることができません。

8.2.4 プレゼンス索引

プレゼンス索引は、指定されている属性の少なくとも1つの値を持つエントリを記録します。属性ごとにプレゼンス索引キーは1つのみ存在し、そのIDリストには、指定されている属性を含むすべてのエントリのエントリIDが含まれます。ACIを使用してエントリを高速検索できるように、aci属性にはデフォルトでプレゼンス索引が付けられています。

8.2.5 部分文字列索引

部分文字列索引は、特定の部分文字列が含まれるエントリを記録します。部分文字列索引の索引キーは、属性値から取得した6文字の部分文字列で構成され、対応する値であるIDリストには、それらの部分文字列を含むエントリのエントリIDが含まれます。属性の部分文字列一致ルールを使用して、索引キーの値を正規化します。部分文字列一致ルールを持たない属性には、部分文字列索引を定義できません。

8.3 索引エントリ制限

索引エントリ制限は、指定された索引キーと一致可能なエントリの最大数(つまり、IDリストの最大サイズ)の制御に使用できる構成制限です。サーバー内のエントリと高い割合で一致する索引キーを維持するために、パフォーマンスの影響を制限するメカニズムを提供します。大きなIDリストを必要とする可能性がある場合は、索引なし検索を実行すると、索引を使用するよりも速度を向上できる場合がよくあります。

8.4 検索の評価

LDAP検索操作を処理するために、サーバーは検索フィルタの各アサーションを適用して候補エントリのリストを生成し、このリストを結合して候補エントリIDの初期セットを構成します。

候補セットが作成されている場合、検索は索引付きであると見なされます。各候補エントリがエントリ・データベースからフェッチされ、検索範囲とフィルタに一致した場合はクライアントに返されます。

候補セットが作成されていない場合(索引が存在しないか、または一部の索引値が索引エントリ制限を超えているため)、検索は索引付けされていないと見なされます。この場合、範囲内のすべてのレコードを反復処理するためにベース・エントリでDNデータベースに対するカーソルがオープンされ、検索ベースの下のエントリをすべて処理するまで対応するエントリをフェッチおよびフィルタします。

索引から取得した候補エントリIDの数が10以下であることが判明した時点で、候補数を減らす処理は終了します。かわりに、索引データベースの読取りを続けるよりも速いという前提で、それらのエントリがすぐにエントリ・データベースからフェッチおよびフィルタ処理されます。この場合、最初のコンポーネントが最も厳しい条件であるようなAND検索で、期待する結果が得られる可能性があります。

また、検索のANDフィルタは、評価に時間がかかるコンポーネント(以上、以下)が、通常はそれより高速なコンポーネント(たとえば、等価)よりも後に評価されるように再配置されます。

8.5 索引の管理

索引を管理する場合、次の重要なポイントがあります: