Главная страница
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.011 c
11-1238076620
SPeller
2009-03-26 17:10
2011.10.30
KOL и D2009


15-1309090112
Думкин погрелец
2011-06-26 16:08
2011.10.30
Вот так бывает


2-1310225359
D_2010
2011-07-09 19:29
2011.10.30
Есть что-нибудь альтернативное DriveComboBox, DirectoryListBox?


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


15-1309781468
Kerk
2011-07-04 16:11
2011.10.30
База данных по документам министерства обороны за 1941-1945