Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

медленный AD


vasa777 ©   (2012-08-14 10:46:00) 

есть соедиенние через ldap к AD ADO (Provider=ADsDSOObject;) и SQL
в цикле получаю инфу для формирования дерева (табличка тоже есть, но не важно)

// кусок кода

i1:=dm1.ADOQuery1.RecordCount;
sl:=tstringlist.Create;
for i:=1 to i1 do begin
application.ProcessMessages;
statusbar1.Panels[0].Text:=inttostr(i)+'/'+inttostr(i1);
dm1.ADOQuery1.RecNo:=i;
// тут получаю инфу по пользователям (почти все поля)
...
if vartype(adoquery1CanonicalName.Value)<>varNull then sl.Add(string(adoquery1CanonicalName.Value[0])); // пример получения одного значения
end;

Вопрос: все это работает, но довольно медлено (даже если выполняется на самом DC) примерно 2 записи в секунду получается вытаскивать (всего 500 тестовых записей пользователей).
Нельзяли как то это все ускорить? В свойствах соединения ADO пробовал кэш включить, отключить таблицу при проходе цикла и прочее... Все равно както не быстро. Понимаю что полей много, но там же не мегобайты данных, текст один.


Inovet   (2012-08-15 21:16:00) [1]

> [15] kilkennycat ©   (15.08.12 20:35)
> по хешу-то быстро будет.

Ну да, мозг заоптимизировал автоматически, видать.


kilkennycat   (2012-08-15 20:35:00) [2]


> Inovet ©   (15.08.12 11:24) [14]

наоборот, не подключена :) по хешу-то быстро будет.


Inovet   (2012-08-15 11:24:00) [3]

> [12] kilkennycat ©   (15.08.12 11:15)
> а каким образом размер фотографий влияет на скорость сортировки
> - непонятно. пиксельно-яркостностный критерий учитывается?:)

Щас окажется, что на сервере хэш функция фильтра распознавания лиц подключена.


Inovet   (2012-08-15 11:20:00) [4]

> [11] vasa777   (15.08.12 10:52)
> основную задержку давали фотографии

А это деза бвла?

> [0] vasa777   (14.08.12 10:46)
> Понимаю что полей много, но там же не мегобайты данных,
> текст один.


kilkennycat   (2012-08-15 11:15:00) [5]

большие объемы надо обрабатывать либо заранее, если исходные не нужны, либо по мере отображения/использования. а каким образом размер фотографий влияет на скорость сортировки - непонятно. пиксельно-яркостностный критерий учитывается? :)


vasa777   (2012-08-15 10:52:00) [6]

проблему я решил кстати. основную задержку давали фотографии, которые были больших объемов, при обрабтке и сортировки.


AV   (2012-08-15 10:24:00) [7]

от 3х до 5 секунд это Open с отображением в DBgrid


vasa777   (2012-08-15 10:24:00) [8]

Удалено модератором
Примечание: Говорю плохо кончишь


vasa777   (2012-08-15 10:23:00) [9]

Удалено модератором
Примечание: Не наезжай, плохо кончишь


sniknik   (2012-08-15 10:13:00) [10]

> ну и не3, а секунд 5, максимум
5 сек ты считаешь загрузку в рекордсет (Open), или + такое же бездарное/ламерское перекладывание в стринглист как у автора?


DVM   (2012-08-15 10:03:00) [11]


> AV ©   (15.08.12 08:14) [5]


> может, регулируется?

да, регулируется, в реестре кажется.


AV   (2012-08-15 08:14:00) [12]


> DVM ©   (14.08.12 23:54) [4]

может, регулируется?
только что, 1820 записей, это уже не чистый запрос, а в -sourse - дб.гриде
ну и не3, а секунд 5, максимум


DVM   (2012-08-14 23:54:00) [13]


> AV ©   (14.08.12 11:28) [3]
> странно, 3 секунды на весь домен практически, около 2000
> юзеров

странно, что сразу 2000, в LDAP есть ограничение больше 1000 пользователей не возвращает обычно за раз.


AV   (2012-08-14 11:28:00) [14]

странно, 3 секунды на весь домен практически, около 2000 юзеров

ConnectionString =
Provider=ADsDSOObject;Encrypt Password=False;Integrated Security=SSPI;Data Source=LDAP://domain.ru;Mode=Read;Bind Flags=0;ADSI Flag=-2147483648

sql.text =
select
sn,
givenname,
company,
mail,
title,
telephonenumber
from 'LDAP://domain.ru'
where objectCategory = 'person'
order by name


kilkennycat   (2012-08-14 11:21:00) [15]

отдельной нитью без всяких процессмессаджев


sniknik   (2012-08-14 11:20:00) [16]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо