Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.005 c
2-1310421407
Gu
2011-07-12 01:56
2011.10.30
переменная в dll


2-1310478941
начинающий95
2011-07-12 17:55
2011.10.30
какого типа сделать переменную


15-1309257357
Andy BitOff
2011-06-28 14:35
2011.10.30
Вакансия. Может кого заинтересует...


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


2-1310404809
Qq
2011-07-11 21:20
2011.10.30
Не открывает проект




   Наверх