Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Быстрота поиска [D5, IB5.x]


Страницы:   1 2

MVVD ©   (2002-03-14 10:04:00) 

Как увеличить скорость поиска при использовании Locate для TQuery?


MVVD   (2002-03-15 08:37:00) [1]

Сделал SQL и на локале убыстрилось в несколько раз, но уже в сети опять заморочки.


Fareader   (2002-03-14 16:22:00) [2]

А ты во все 7000 записей вносишь одинаковые изменения?
Все-таки используй запросы, Locate каждый новый поиск начинает с первой записи вот и подумай ск. на это надо времени.


Deniz   (2002-03-14 15:05:00) [3]

>MVVD © (14.03.02 14:57)
Напиши код в условии.


Johnmen   (2002-03-14 15:03:00) [4]

>MVVD © : Ты по-прежнему не желаешь использовать ...WHERE...?
Ну почему ???


MVVD   (2002-03-14 14:57:00) [5]

Deniz. В условии осуществляется редактирование записи, но торможение исключительно на Locate


Val   (2002-03-14 13:05:00) [6]

MVVD © (14.03.02 10:48)
при использовании SQL-серверов лучше подобные действия производить непосредственно на сервере с помошью вью и хп

P.S. извиняюсь за повторы-глюки инета:(


Deniz   (2002-03-14 12:39:00) [7]

А что ты делаешь в условии:
if (Dmod.qWorkK.Locate("D",nels,[]))
then begin
{ ... }
end;

Может это оно тормозит?
Проверь пошагово, какой оператор выполняется долго.


Johnmen   (2002-03-14 11:13:00) [8]

>deleon : Парадокс этот Paradox !!!


deleon   (2002-03-14 11:08:00) [9]

Тестировал Locate для парадокса, так вот: параметр loCaseInsensitive ускоряет поиск раза в два (даже если идет поиск по Integer полю!)


Val   (2002-03-14 10:51:00) [10]

сорри :)
select what_i_whant from mytable
where myconditions


MVVD   (2002-03-14 10:48:00) [11]

Вот фрагмент:

DMod.qWorkK.Active := False;
DMod.qWorkK.SQL.Clear;
DMod.qWorkK.SQL.Add("Select * From PLAN1");
DMod.qWorkK.SQL.Add(" Order by D ");
DMod.qWorkK.Active := True;
DMod.qWorkK.First;

DMod.qPL.Active := False;
DMod.qPL.SQL.Clear;
DMod.qPL.SQL.Add("Select * From BALANS");
DMod.qPL.SQL.Add(" Order by NLS ");
DMod.qPL.Active := True;
DMod.qPL.First;

Dmod.qPL.First; While(not Dmod.qPL.EOF) do begin {While}
nels := Trim(Dmod.qPL.FieldByName("NLS").AsString);
if (Dmod.qWorkK.Locate("D",nels,[]))
then begin

end;
Dmod.qPL.Next;
end;


Val   (2002-03-14 10:48:00) [12]

select what_i_whant from mytable


Johnmen   (2002-03-14 10:47:00) [13]

SELECT ... FROM ...
WHERE <здесь условие поиска, которое ты хотел в Locate>


MVVD   (2002-03-14 10:43:00) [14]

А пример такого SQL каков?


Johnmen   (2002-03-14 10:42:00) [15]

Локальный буфер и кэш вообще-то несколько разные вещи !

Ответ на вопрос : Johnmen © (14.03.02 10:19)


roottim   (2002-03-14 10:42:00) [16]

>Проверка наличия 7000 записей
Locate-ом.. в большенстве сл используется для позиционирования... но не для последовательно й обработки...
в этом сл действительно надо скл использовать


MVVD   (2002-03-14 10:36:00) [17]

Написано, что в этом случае все изменения происходят в локальном буфере и минимизируется сетевой трафик


Johnmen   (2002-03-14 10:33:00) [18]

А зачем кэширование ?!


MVVD   (2002-03-14 10:23:00) [19]

Использую кэширование, параметры поиска не используются, поиск по одному полю (балансовый счет) и никакого толка


Johnmen   (2002-03-14 10:19:00) [20]

Используй запросы для поиска !


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо