![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TADODataSet.Next. Почему так медленно? [MSSQL]
Bless © (2006-08-15 12:54:00)Сабж собственно.
Есть два фрагмента
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
i:=0;
with q.Recordset do begin
MoveFirst;
while not EOF do begin
MoveNext;
inc(i);
end;
end;
showMessage(IntToStr(i));
end;
и
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
begin
i:=0;
q.First;
while not q.Eof do begin
q.Next;
inc(i);
end;
showMessage(IntToStr(i));
end;
q - TADODataSet - простой селекс из одной таблицы с
почти 30000 тыс. записей.
DB-Aware контролов на форме нет.
Время в тиках секунд не засекал.
Но пока выполнялся первый - я досчитал до одного,
пока второй - до двадцати четырех.
Почему такая огромная разница?
Ее можно сократить?
Ega23 (2006-08-15 14:16:00) [1]А посмотри. Много интересного узнаешь.
Bless (2006-08-15 14:06:00) [2]
> Ega23 © (15.08.06 13:59) [7]
> А ты его реализацию смотрел?
Нет. А что?
Ega23 (2006-08-15 13:59:00) [3]
> Блин, я знал конечно, что DisableControls - это полезно,
> но не думал, что аж настолько!
>
А ты его реализацию смотрел?
Bless (2006-08-15 13:56:00) [4]
> sniknik © (15.08.06 13:17) [1]
>
> > DB-Aware контролов на форме нет.
> неважно, DisableControls все одно сделай.
С "посчитал до двадцати четырех" сократилось до "посчитал до двух".
Блин, я знал конечно, что DisableControls - это полезно, но не думал, что аж настолько!
sniknik (2006-08-15 13:27:00) [5]> Хорошая у тебя опечатка... :о)
;о))))))) да, оттуда я еще данных не получал.... :)
sniknik (2006-08-15 13:24:00) [6]индексы не причем, это же в памяти рекордсет на клиенте (я его могу и не с бабы получать а например с файла, или по ходу программы его сделать/заполнить...)
Ega23 (2006-08-15 13:24:00) [7]
> sniknik © (15.08.06 13:24) [3]
Хорошая у тебя опечатка... :о)
ORMADA (2006-08-15 13:20:00) [8]индексы ещё прикрути..
может быстрее будет
да и тащить 30,000 записей на клиента ни к чему! всё равно никто стока сразу не просмотрит! а на сервере обработка 30,000 (даже с тормозными курсорами)- игрушки.
sniknik (2006-08-15 13:17:00) [9]> DB-Aware контролов на форме нет.
неважно, DisableControls все одно сделай.