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

Вниз

поиск в локальной БД   Найти похожие ветки 

 
.dzmitry   (2011-07-11 12:01) [0]

Есть локальная БД (EvaluateDB) в таблице которой нужно искать значения в индексном поле Id (1 000 000 записей). Как добиться максимального быстродействия при поиске? Что будет быстрее работать FindKey, Locate, Lookup?


 
.dzmitry   (2011-07-11 12:15) [1]

По моим тестам поиск через FindKey быстрее


procedure TForm1.Button1Click(Sender: TObject);
var
 I, N: Integer;
 T: Cardinal;
begin
 T := GetTickCount;
 for I := 1 to 5000 do
 begin
   Randomize;
   N := Random(1000000);
   TestTable.FindKey([N]);
   //TestTable.Locate("Id", N, []);
   //TestTable.Lookup("Id", N, "Id");

 end;
 ShowMessage(IntToStr(GetTickCount - T));

 //
 // - FindKey - 141 ms
 // - Locate  - 164 ms
 // - Lookup  - 172 ms
end;


 
Anatoly Podgoretsky ©   (2011-07-11 12:24) [2]

FindKey не везде работает.
Lookup не совсем поиск, это выборка.

Я лично предпочитаю чистую выборку SELECT ..., меня особо скорость не интересует, а интересует надежность и универсальность.

А что поиск осуществляется 1  000 000 раз что ли?


 
.dzmitry   (2011-07-11 13:05) [3]

В принципе может и 1 000 000 раз. пишу функцию синхронизации таблицы БД с xml-файлом по полю Id. Из xml-файла получаю Id, если запись с таким Id существует в таблице БД - обновить определенные поля этой записи данными из xml-файла, если не существует - добавить новую запись, т.е. нужно каждый раз проверять существование записи с определенным значением Id.


 
Anatoly Podgoretsky ©   (2011-07-11 13:08) [4]

Умрешь дожидаться окончания работы программы.
Сделай лучше правильный SELECT


 
Dennis I. Komarov ©   (2011-07-11 13:30) [5]

... и правильный INSERT



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

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

Наверх




Память: 0.47 MB
Время: 0.007 c
15-1309445404
картман_
2011-06-30 18:50
2011.10.30
московское метро


1-1270107962
Delp
2010-04-01 11:46
2011.10.30
Вопрос по парсингу xml-файлов


15-1303845129
plr
2011-04-26 23:12
2011.10.30
user-defined characters в ESC/P принтерах


15-1309643620
eXAAAXe
2011-07-03 01:53
2011.10.30
Кличко-Хей. Прямой эфир.


15-1309364654
Baks
2011-06-29 20:24
2011.10.30
CR2 Converter