Oracle® Fusion Middleware Oracle Directory Server Enterprise Editionリファレンス 11g リリース1 (11.1.1.7.0) B72441-01 |
|
前 |
次 |
書籍の索引と同様に、Directory Serverの索引を利用することで、検索文字列とディレクトリの内容を関連付け、検索が速くなります。Directory Serverによって使用される索引の詳細は、次の項を参照してください。
Directory Serverは索引を使用して、Directory Serverのエントリと参照情報を関連付けることによって検索操作の速度を向上させます。検索操作中に、Directory Serverは索引を使用して、検索キーと一致するエントリを検索します。索引なしでは、Directory Serverは検索キーへの一致を検索するために、サフィックスにおいてすべてのエントリをチェックする必要があります。
索引はデータベース・ファイルに格納され、ディレクトリにおける各サフィックスとは無関係に作成および管理されます。各索引ファイルには、特定の属性に対してサフィックスにおいて定義されている、索引のすべてが含まれています。たとえば、cn
属性に関して保持されるすべての索引が、databaseName_cn.db3
ファイルに格納されます。索引付けされたエントリが修正されると、Directory Serverは索引ファイルを更新します。
Directory Serverでは次のタイプの索引がサポートされています。
検索のパフォーマンスを向上するための、または他のアプリケーションによって実行される検索をサポートするためのデフォルトの索引。サフィックスが作成される際に、デフォルトの索引が追加されます。
Directory Serverが適切におよび効率的に動作することを可能にする、システム索引。
ユーザーが属性を作成する際に、または新規索引を定義する際に追加される、ユーザー索引。
この項の内容は次のとおりです。
システム索引は、Directory Serverが適切におよび効率的に動作することを可能にするために必要です。システム索引の削除や変更はできません。表9-1は、すべてのサフィックスに自動的に作成されるシステム索引を示しています。
表9-1 すべてのサフィックスに自動的に作成されるシステム索引
属性 | 同等索引付け | 存在索引付け | 説明 |
---|---|---|---|
|
X |
ディレクトリ・サーバーが、ディレクトリに保持されているアクセス制御情報を迅速に取得することを可能にする。 |
|
|
X |
サブツリー検索中にディレクトリのパフォーマンスを向上させる。 |
|
|
X |
DN検索に基づき、エントリの取得速度を向上させる。 |
|
|
X |
ディレクトリ・エントリに関する実際のデータベースを含む。これから、他のすべてのデータベース・ファイルが再作成可能。 |
|
|
X |
特定のエントリの検索に使用される。 |
|
|
X |
レプリケーション用のDirectory Serverで内部的に使用される。 |
|
|
X |
X |
レプリケーションの競合の検出に役立つ。 |
|
X |
ディレクトリ・タブにおける表示パフォーマンスの向上のために、Directory Service Control Centerによって使用される。 |
|
|
X |
サブツリー検索の速度を速める。 |
|
|
X |
1レベルの検索中にディレクトリのパフォーマンスを向上させる。 |
ご使用のディレクトリに新しいサフィックスを作成すると、サーバーは、対応するデータベース・ディレクトリにデフォルトの索引のセットを構成します。ご使用の索引作成の必要性に応じて、デフォルトの索引を修正できます(ただし索引を削除する前に、御社においてサーバー・プラグインまたは他のサーバーが索引付けされた属性に依存していないことを確認する必要があります)。
表9-2は、Directory Serverに構成されるデフォルトの索引をリスト表示しています。
表9-2 すべての新規サフィックスにおけるデフォルトの索引
属性 | 同等索引付け | 存在索引付け | 部分文字列索引付け | 説明 |
---|---|---|---|---|
|
X |
X |
X |
ディレクトリ検索の最も一般的なタイプについてのパフォーマンスを改善。 |
|
X |
X |
X |
ディレクトリ検索の最も一般的なタイプについてのパフォーマンスを改善。 |
|
X |
X |
X |
ディレクトリ検索の最も一般的なタイプについてのパフォーマンスを改善。 |
|
X |
メッセージング・サーバーによる使用。 |
||
|
X |
メッセージング・サーバーによる使用。 |
||
|
X |
サーバーのパフォーマンスの向上。この索引は、参照整合性プラグインによっても使用される。 |
||
|
X |
X |
X |
カレンダ・サーバーによる使用。 |
|
X |
メッセージング・サーバーのローミング機能による使用。 |
||
|
X |
ロールベースの操作のパフォーマンスを改善。 |
||
|
X |
カレンダ・サーバーによる使用。 |
||
|
X |
サーバーのパフォーマンスの向上。この索引は、参照整合性プラグインによっても使用される。 |
||
|
X |
その他のサーバーによる使用。 |
||
|
X |
その他のサーバーによる使用。 |
||
|
X |
サーバーのパフォーマンスの向上。この索引は、参照整合性プラグインによって使用される。 |
||
|
X |
X |
X |
ユーザー・ディレクトリ検索の最も一般的なタイプについてのパフォーマンスを改善。 |
|
X |
X |
X |
ユーザー・ディレクトリ検索の最も一般的なタイプについてのパフォーマンスを改善。 |
|
X |
サーバーのパフォーマンスの向上。 |
||
|
X |
サーバーのパフォーマンスの向上。この索引は、参照整合性プラグインによっても使用される。 |
近似索引付けの場合を除き、この項における索引は、基本的な一致ルールを高速化するためにDirectory Serverによって使用されます。この項では、次の索引タイプについて説明します。
存在索引付けには、指定された属性の値を含むデータベースにおけるすべてのエントリが、値に関係なく含まれます。次の図は、nsRoleDN
属性の存在索引付けを示します。この属性の詳細は、nsRoleDNについての説明を参照してください。
Directory Serverは、entryid
属性の値を使用して、エントリへの参照を格納します。Directory Serverは、instance-path
/db/
dbinstance
/
dbinstance
_id2entry.db3
索引ファイルの使用によって、エントリを取得します(dbinstanceは、データべース識別子に依存します)。
Directory Serverが存在索引付けされた属性値を削除するリクエストを受けた場合、クライアント・アプリケーションへの更新を確認する前に、この属性の存在索引付けからエントリを削除する必要があります。
存在索引付け向けに保持されるエントリのリストが長くなる可能性がありますが、存在索引付けによる負荷は一般的に低いものとなっています。索引リストの長さが短い場合、存在索引付けは、ディレクトリ・エントリの比較的小さい割合を占める属性の場合に役立ちます。
同等索引付けには、任意の属性について指定された値を含む、データベースにおけるすべてのエントリが含まれます。この索引は、検索フィルタで値が指定される必要があります。次の図は、sn
(すなわち姓)属性の同等索引付けを示します。この索引は、sn
属性の値のリストを保持します。この属性の詳細は、snについての説明を参照してください。
Directory Serverが同等索引付けされたエントリを更新するリクエストを受けた場合、更新を実行してクライアントへの更新を確認する前に、次の作業を行う必要があります。
索引からエントリを削除する必要があるかどうかの判断
索引に対してリストを追加または削除する必要があるかどうかの判断
同等索引付けの負荷は、部分文字列索引付けの場合よりも通常低いですが、同等索引付けは存在索引付けよりも容量を必要とします。メッセージング・サーバーなどの一部のクライアント・アプリケーションは、検索のパフォーマンスについては同等索引付けに依存する場合があります。写真やハッシュ・パスワードのような大きなバイナリ属性には、同等索引付けの使用を避けてください。
部分文字列索引付けは、3文字のグループの検索に使用されます(例: sn=*abc*
)。3文字のグループが、この索引に格納されます。部分文字列索引付けは、写真などのバイナリ属性には適用できません。次の図は、SN
属性の部分文字列索引付けを示します。
Directory Serverの検索アルゴリズムは次の検索向けに最適化されていますが、これらの検索は、索引リストのしきい値に到達する可能性が高くなっています。
sn=*ab*
形式で2文字の部分文字列についての検索。
sn=a*
形式で1文字のグループについての検索。sn=*a
およびsn=*a*
の形式で1文字のグループについては、検索を実行できません。
Directory Serverは、独自の組込みルールに基づき、部分文字列の索引を構築します。システム管理者は、部分文字列索引付けを構成できません。
Directory Serverが、部分文字列に索引付けされた属性のあるエントリを更新するリクエストを受けた場合、更新を実行してクライアントへ更新について応答する前に、次の作業を行う必要があります。
索引からエントリを削除する必要があるかどうかの判断
エントリへの修正が索引に影響するかどうか、およびどのように影響するかを判断
索引に対して、エントリIDまたはエントリIDのリストを追加または削除する必要があるかどうかの判断
部分文字列索引付けの保持は負荷が比較的高く、索引付けされた部分文字列の長さの関数が負荷となります。負荷を最小にするために、不要な部分文字列索引付け(特に説明などの長い文字列となる可能性がある属性)を回避します。
索引の参照は、仮想リスト表示索引とも呼ばれます。索引の参照は、サーバー側のソートまたは仮想リスト表示(VLV)結果をリクエストする、検索操作に使用されます。索引の参照を使用して、大量の結果をサーバー側でソートすることが必要となる、検索のパフォーマンスを改善できます。ご使用のディレクトリ構成に応じて、索引の参照が定義されていない場合に、ソートを必要とする検索の実行をサーバーが拒否する可能性があります。これによって、大量のソート作業がサーバー・リソースに負荷をかけすぎることを防止します。
索引の参照は、vlvSearchオブジェクト・クラスの次のパラメータ、vlvBasevlvScope、vlvScopeおよびvlvFilterで構成されます。索引の参照は、vlvIndexオブジェクト・クラスの次のパラメータ、vlvSortによってソートされます。
索引の参照は、2つのステップで構成されます。
検索ベース、検索の範囲および検索のフィルタは、vlvSearch
オブジェクト・クラスのvlvBase
、vlvScope
およびvlvFilter
属性によって構成されます。
索引をソートする属性名は、vlvIndex
オブジェクト・クラスのvlvSort
属性によって構成されます。
次の図は、索引の参照を示しています。
vlvFilter
値のあるエントリを更新するリクエストをDirectory Serverが受けた場合、更新を実行してクライアントへの更新を確認する前に、次の作業を行う必要があります。
索引からエントリを削除する必要があるかどうかの判断
リストにおけるエントリの正しい位置を特定
近似索引付けは、効果的なあいまい検索を実現するために、英語のみで動作します。たとえば近似索引付けは、名前の一部やつづりの誤った名前の検索に役立ちます。Directory Serverは、Metaphone音声アルゴリズムの一種を使用して、近似索引付けで検索を実行します。このアルゴリズムは音節に緩やかに基づいているため、電話番号などの数字を含む属性には効果的ではありません。