Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.10.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
.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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
2-1310461223
Abibas
2011-07-12 13:00
2011.10.30
Вопрос по keybd_event


15-1309277924
tesseract
2011-06-28 20:18
2011.10.30
пивная тема.


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


15-1308692620
oxffff
2011-06-22 01:43
2011.10.30
Совместный съем квартиры в Москве. Есть ли желающие?


15-1309954783
dest81
2011-07-06 16:19
2011.10.30
select, sum как правильней





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский