インデックスを使用すると、検索で一致するものを見つけるためにチェックする必要のあるエントリの数が実質的に削減されるため、検索が高速化されます。インデックスには、値のリストが含まれています。各値は、エントリ識別子のリストに関連付けられています。Directory Server は、インデックス内のエントリ識別子のリストを使用して、各エントリをすばやく検索できます。Directory Server が、インデックスのない状態でエントリのリストを管理するには、検索で一致するものを見つけるためにサフィックス内のすべてのエントリをチェックする必要があります。
Directory Server は、各検索要求を次のように処理します。
Directory Server がクライアントから検索要求を受信します。
Directory Server は要求を検査して、その検索を処理できることを確認します。
Directory Server が検索を実行できない場合は、クライアントにエラーを返します。また、その検索を Directory Server の別のインスタンスに任せる場合もあります。
Directory Server は、その検索に対応する 1 つ以上のインデックスを管理しているかどうかを判定します。
Directory Server がその検索に対応するインデックスを管理している場合、サーバーは、対応するすべてのインデックスを検索して候補エントリを見つけます。候補エントリとは、検索要求に一致する可能性のあるエントリです。
Directory Server がその検索に対応するインデックスを管理していない場合、サーバーは、データベース内のすべてのエントリをチェックすることによって候補エントリのセットを生成します。
Directory Server がインデックスを使用できない場合は、この処理で消費される時間とシステムリソースが増えます。
Directory Server は各候補エントリを検査して、そのエントリが検索条件に一致するかどうかを判定します。
Directory Server は、一致するエントリを見つけると、そのエントリをクライアントアプリケーションに返します。
次のことを行うことによって、検索のパフォーマンスを最適化できます。
インデックスが生成されていないエントリに対して Directory Server が検索を実行しないようにします。
キャッシュサイズが適切に調整されていることを確認します。
インデックスの長さを制限します。
インデックスの動作の包括的な概要については、『Sun Java System Directory Server Enterprise Edition 6.2 Reference』の第 6 章「Directory Server Indexing」を参照してください。インデックスの定義については、『Sun Java System Directory Server Enterprise Edition 6.2 管理ガイド』の第 12 章「Directory Server のインデックス」を参照してください。