Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.24;
Скачать: CL | DM;

Вниз

Скорость TIBQuery.Locate   Найти похожие ветки 

 
Igor_ ©   (2002-10-02 11:47) [0]

В DBGrid выводится такой запрос - данные из трех таблиц
orders имеет forgein key на clients и order_status

Select o.*,c.ORG_NAME,c.CLIENT_NAME ,s.*
from orders o,clients c,order_status s
where o.client_id=c.id and o.status=s.id


когда делаешь Locate по какому-либо полю это происходит очень
медленно, даже при небольшой выборке (записей 20).
Как можно ускорить работу Locate?


 
Prooksius ©   (2002-10-02 12:08) [1]

Дело в том, что Locate работает в памяти с DataSet.
Тут все зависит от того, какими компонентами пользуешься.
Например, FIBplus работают так:
Если locate находит строку в уже отфетченной части DataSet, то просто позиционируется на нее, если эта строка еще не отфетчена, то фетчится до искомой строчки и позиционируется на нее.
Насколько я знаю, остальные компоненты так не работают. Locate сначата делает FetchAll, а потом, собственно, саму себя.
Но у тебя 20 строчек... Может быть, ты фетчишь какие-то большие поля или их очень много... Хотя, и это не должно влиять.

У меня на FIBPlus все идеально. Попробуй их.


 
VAleksey ©   (2002-10-02 12:34) [2]

Если честно, то я никогда не сталкивался с такой медлительностью локейт-а. Может быть дело не в нем ?


 
alexandr ©   (2002-10-02 12:40) [3]

дело может быть в вычисляемых полях у TIBQuery


 
ЮЮ ©   (2002-10-02 13:11) [4]

Или в обработчиках onBeforeScroll, onAfterScroll. Или в DB-aware компонентах, связанных с запросом. Обрубай всё перед Locate, а затем подключай.



Страницы: 1 вся ветка

Текущий архив: 2002.10.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
4-78716
denisz
2002-09-11 22:00
2002.10.24
Список файлов


3-78234
brestmarket
2002-09-29 02:02
2002.10.24
Как определить: видна сейчас на экране опред. кол-ка DBGrid?


14-78660
kaif
2002-10-04 18:55
2002.10.24
Felix Metall


6-78572
knyaz17
2002-08-20 14:28
2002.10.24
Вопрос по NWLib.(библиотека для Nowell).


1-78448
greenrul
2002-10-11 19:50
2002.10.24
Указатели : if (Units