Иван Коробко
Ни для кого не секрет, что скорость получения данных из Active Directory
с помощью штатных средств в сценарии оставляет желать лучшего. Одно из решений
проблемы – использовать прилинкованный
SQL-сервер.
Осуществляя доступ к Active Directory с помощью ADsDSOObject, обеспечивают
полный доступ к свойствам ее объектов: их можно создавать, удалять, изменять
свойства. Основной недостаток использования ADsDSOObject-провайдера – очень
низкая скорость получения данных. Например, если читать из Active Directory
свойства 500-600 объектов, отфильтровывая их из общей массы, то эта процедура
занимает по времени 1-3 минуты. Увеличить скорость чтения данных можно,
используя в качестве провайдера прилинкованный к Active Directory SQL-сервер.
Скорость решения аналогичной задачи сокращается до нескольких секунд. Однако не
все так хорошо, как кажется с первого взгляда. Во-первых, с помощью
прилинкованного сервера можно осуществлять только быстрый поиск и чтение
данных. Так что записывать данные придется с помощью ADODBсоединения.
Во-вторых – по умолчанию прилинкованный сервер имеет ограничение по количеству
выводимых записей – 1000. Это ограничение – изменяемый параметр (см. KB243281, Conrolling the Active Directory Search Buffer
Size (http://support.microsoft.com/kb/243281)),
но все-таки необходимо о нем помнить при формировании запросов.