Главная страница
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.067 c
2-1393319059
Novicer
2014-02-25 13:04
2015.09.10
Ошибка при удалении записей таблицы Firebird


15-1417807101
KilkennyCat
2014-12-05 22:18
2015.09.10
Где Северный полюс?


3-1304514851
Leon-Z
2011-05-04 17:14
2015.09.10
DBLookupListBox & DBLookupComboBox.


15-1417901404
Юрий
2014-12-07 00:30
2015.09.10
С днем рождения ! 7 декабря 2014 воскресенье


15-1415975355
LIFTEX
2014-11-14 17:29
2015.09.10
Вопрос по версиям среды разработки