LDAP クエリは、AD または LDS/ADAM ディレクトリ サービスで予想よりも遅く実行され、イベント ID 1644 がログに記録される可能性があります

この記事では、AD LDS または ADAM ディレクトリ サービスを使用する Windows Server コンピューターで LDAP クエリの実行速度が低下する問題の回避策について説明します。

適用対象: Windows Server 2012 R2
元の KB 番号: 951581

現象

Active Directory ライトウェイト ディレクトリ サービス (AD LDS) または Active Directory アプリケーション モード (AD/AM) ディレクトリ サービスを使用する Windows Server コンピューターでは、特定のアプリケーションが期待されるパフォーマンス レベルで実行されません。

フィールド エンジニアリング (デバッグ) ログを有効にして LDAP クエリをトレースすると、次のイベント ログは、LDAP クエリが非効率的なクエリであることを示しています。

注:

このイベントで使用される属性は、例にすぎません。

さらに、CPU 使用率が高く、応答時間が遅くなります。 データベースがディレクトリ サーバーで使用できる物理メモリよりもかなり大きい場合は、このようなクエリの処理中にディスク IO が増加する可能性もあります。

検索フィルターで属性を検査すると、それらがすべて定義されているインデックスを持っていることがわかります。 また、属性に定義されたインデックスがない場合、スキーマの変更を通じてインデックスを追加すると、問題は解決しないか、あまり改善されません。

原因

LDAP クエリのネットワーク トレースを作成すると、ページ クエリであることがわかります。

LDAP サーバーでは、ページクエリの処理中に使用できるインデックスは 1 つだけです。 これは、ページ検索の LDAP 実装では、クエリのコストの高いコンテキストが作成されないため、ページングされたクエリに 1 つのインデックスのみを使用するためです。

回避策

この問題を回避するには、ページングされたクエリ コントロールを使用せずにクエリを送信できます。 これにより、LDAP サーバーはより複雑なフィルター用に最適化できます。

注:

既定では、一部の LDAP クライアント ライブラリに対してページ クエリが有効になっています。 そのため、特定の状況に応じてページクエリを有効または無効にするために、アプリケーションに追加のコードを記述する必要がある場合があります。

状態

Microsoft は、これが問題であることを確認しました。

関連情報

Active Directory と LDS 診断イベント ログを構成する方法