Поделиться через


Создание эффективных запросов

В следующей таблице определены важные понятия, которые следует учитывать при создании эффективного запроса.

Область Description
Индексирование Убедитесь, что фильтр запросов содержит по крайней мере один индексированные атрибуты.
Дополнительные сведения см. в разделе "Индексированные атрибуты".
Класс и категория Оператор objectClass=xyz ссылается на объекты каталога, в которых xyz представляет любой класс в иерархии классов объектов, в то время как objectCategory=xyz ссылается на те объекты каталога, в которых xyz определяет определенный класс в иерархии классов объектов. Свойство objectClass может принимать несколько значений, в то время как objectCategory принимает одно значение и, таким образом, лучше подходит для сопоставления типов объектов в поиске каталога.
Поиск текста Избегайте поиска текста в середине и в конце строки.
Например, "cn=*hille*" или "cn=*larouse".
Использование более конкретных критериев сопоставления, как правило, повышает производительность поиска. Это связано с тем, что службы домен Active Directory будут оценивать все предикаты, идентифицирует индексы, а затем выбирает один индекс, скорее всего, даст наименьший набор возвращаемых значений. Этот метод не работает хорошо с поиском в середине и концевой строке. Если у вас нет другого варианта, кроме использования этих поисковых запросов, можно определить индекс кортежа для атрибута.
Дополнительные сведения об индексах кортежей см. в разделе "Как работает индексирование кортежей".
Поиск поддерев При рассмотрении поиска поддерев используйте глобальный каталог. Для обращения к рефералам требуются обширные ресурсы.
Дополнительные сведения см. в разделе "Указание других параметров поиска".
Использование разбиения по страницам Предположим, что поиск поддерев возвращает большой результирующий набор. Используйте разбиение по страницам при выполнении поиска поддерев. Сервер будет передавать большой результирующий набор в блоках, уменьшая ресурсы памяти на стороне сервера. Это сводит к минимуму использование сети и сокращает потребность в отправке больших блоков данных по сети.
Дополнительные сведения см. в разделе "Указание других параметров поиска".
Объединение поисковых запросов Используйте несколько атрибутов для поиска. Один поиск объекта, считывающего два атрибута, является более эффективным, чем два поиска одного и того же объекта, каждый возвращающий один атрибут.
Эффективное использование привязки Привязка к объекту один раз и удерживайте дескриптор привязки для остальной части сеанса. Не привязывайтесь и отменяйте привязку для каждого вызова. Если вы используете ADO или OLE DB, не создавайте много объектов подключения.
Кэширование RoodDSE Прочтите rootDSE один раз и запомните его содержимое для остальной части сеанса.
Дополнительные сведения см. в разделе "Бессерверная привязка" и rootDSE.
Сохраняемость ссылок Сохраняйте ссылки на объекты в виде идентификаторов GUID, а не различаемых имен, чтобы быть переименованы и удалены безопасно.
Дополнительные сведения см. в разделе "Использование objectGUID для привязки к объекту".