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


Получение больших наборов результатов

Если есть вероятность того, что результирующий набор, который будет возвращен, будет содержать более 1000 элементов, необходимо использовать поиск по страницам. Поиски Active Directory, выполненные без разбиения по страницам, ограничены возвратом не более 1000 записей. При поиске по страницам результирующий набор представлен как отдельные страницы, каждый из которых содержит предопределенное количество записей результатов. При этом поиске возвращаются новые страницы записей результатов до конца результирующий набор.

По умолчанию сервер, который отвечает на запрос запроса, полностью вычисляет результирующий набор перед возвратом данных. В большом результирующем наборе требуется память сервера при получении результирующий набор, а пропускная способность сети при возврате большого результата. Установка размера страницы позволяет серверу отправлять данные на страницах по мере создания страниц. Затем клиент кэширует эти данные и предоставляет курсор в код уровня приложения. Разбиение по страницам определяется путем определения количества строк, вычисляемых сервером перед возвратом данных через сеть клиенту.

Поиск по страницам предоставляет преимущества как клиенту, так и серверу. Например, клиент может быть более адаптивным при представлении результатов конечным пользователям. Это особенно важно для графических инструментов пользовательского интерфейса, которые могут отображать данные, а другой поток одновременно получает больше данных от сервера.

При настройке запроса при указании порядка сортировки для результирующий набор сервер должен полностью вычислить результирующий набор, прежде чем возвращать данные клиенту, что влияет на время отклика запроса.

На стороне сервера поиск страниц делает операцию масштабируемой. Например, если один сотня клиентов одновременно выдает поисковые запросы и, в среднем, каждый клиент возвращает дваста объектов, если размер страницы не указан, сервер должен иметь достаточно памяти для хранения полного результированного набора из 20 000 записей. Кроме того, если каждый клиент указал размер страницы десяти объектов, требования к памяти на сервере будут сокращены на 20.

Примечание.

Не все службы каталогов поддерживают поиск по страницам. Active Directory реализует архитектуру размера страницы.

 

Многие серверы каталогов указывают Администратор istrative Limit для максимального количества объектов, которые они могут возвращать, если клиент не указывает размер страницы. Когда достигается Администратор istrative Limit, ADSI создает ошибку ERROR_DS_ADMIN_LIMIT_EXCEEDED Win32.

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

От имени клиента ADSI прозрачно обрабатывает размер страницы. Клиенту не нужно подсчитывать количество объектов, выполняемых в процессе. ADSI инкапсулирует взаимодействие с сервером для клиента. С точки зрения клиента поиск возвращает полный результирующий набор.

Дополнительные сведения об использовании параметра времени ожидания поиска с определенным интерфейсом поиска см. в следующих статье:

Поиск по страницам является прозрачным для приложения, так как ADSI автоматически продолжает получать дополнительные страницы результатов, пока не достигнет конца результирующих наборов или окончания заданного ограничения времени. При использовании поиска по страницам ограничение размера не переопределяет размер страницы. Ограничение размера можно использовать только при получении результирующий набор, содержащий менее 1000 записей.