Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.09.10;
Скачать: CL | DM;

Вниз

SQLite + FireDAC   Найти похожие ветки 

 
FMX   (2014-03-10 16:20) [0]

Нужно пробежать таблицу из 100 000 записей.

Делаю так:


procedure TForm1.ShowAllRecordsClick(Sender: TObject);
var
 TableItem: TADTable;
 I: Integer;
 FieldID, FieldName: TField;
begin
 TableItem := TADTable.Create(nil);
 try
   TableItem.Connection := ADConnection1;
   TableItem.Open("item");
   FieldID := TableItem.FieldByName("id");
   FieldName := TableItem.FieldByName("name");
   TableItem.First;
   I := 1;
   ListBox1.BeginUpdate;
   try
     while not TableItem.Eof do
     begin

       if I mod 250 = 0 then
         Caption := Format("%d of %d", [I, TableItem.RecordCount]);

       ListBox1.Items.Add(Format("id: %d; name: %s", [FieldId.AsInteger,
         FieldName.AsString]));
       TableItem.Next;
       Inc(I);
     end;
   finally
     ListBox1.EndUpdate;
   end;
 finally
   TableItem.Free;
 end;
end;


Практически мгновенно пробегаются первые 8 000 записей, затем пробег резко замедляется и дальше перебирает еле-еле. Почему так происходит? Как ускорить перебор?


 
Inovet ©   (2014-03-10 16:45) [1]

Ты все 100500 тыщ в ЛистБокс впихиваешь? Выход один - дождаться выпуска новых 100500 ядерных процессоров со 100500 гигами памяти на каждом, и новой ОС с новым ЛистБоксом под них. Впрочем, есть ещё варианты.


 
Inovet ©   (2014-03-10 16:47) [2]

Кстати, Скайп, которым теперь МС занимается, как раз так и делает и как раз из SQLite. Так что ждём-с.


 
sniknik ©   (2014-03-11 07:57) [3]

DisableControls
+
вот это - TableItem.RecordCount вынести за цикл... нафига дергать метод объекта каждый раз кто знает что в нем "лишнего" делается...



Страницы: 1 вся ветка

Текущий архив: 2015.09.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.086 c
15-1419197402
Юрий
2014-12-22 00:30
2015.09.10
С днем рождения ! 22 декабря 2014 понедельник


15-1417524936
И. Павел
2014-12-02 15:55
2015.09.10
Уроки по программированию


15-1412178807
Fox
2014-10-01 19:53
2015.09.10
Задача по математике за 3й класс


2-1394229671
alexdn
2014-03-08 02:01
2015.09.10
Мигает картинка


2-1395731174
Сергей
2014-03-25 11:06
2015.09.10
Определить тип данных