![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ускорение поиска [D7, IB5.x]
_Andrew_ © (2003-06-07 02:05:00)Доброй ночи, уважаемые!
Подскажите плз, решение след. проблемы:
есть ДАТАСЕТ с большим набором данных (5000 записей).
Пытаюсь для TEdit сделать нечто MRUListа, для чего пишу:
procedure Form1.Edit1Change(Sender: TObject)
....
if DataSet1.Locate("Name",Edit1.Text,[]) then begin
Edit1.Text := DataSet1.Fields[0].AsString;
....
Все бы ничего, но только на Cel400, при первом Locate происходят страшные томоза :(
Как можно ускорить поиск по ДАТАСЕТУ???
Alexandr (2003-06-07 09:53:00) [1]вот он про первый locate и говорит. Это из-за фетча, ане из-за поиска.
Надо запрос оптимизировать
kaif (2003-06-07 03:48:00) [2]Если используется Locate в Query, то индексирование не поможет. Нужно просто сделать второй запрос (использовать отдельный компонент для него). Причем в той же транзакции. Это быстро сработает даже без индекса. А Locate очень медленный метод, так как требует fetch всех записей на клиент и ищет перебором этих записей.
Basic (2003-06-07 02:27:00) [3]проиндексируй по полю NAME и будет уже ускоренный поиск а не перебор