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

Вниз

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

Наверх





Память: 0.55 MB
Время: 0.036 c
1-78488
Lony
2002-10-13 14:23
2002.10.24
Как из этих функций сделать модуль или как их использовать?


7-78682
kss1515
2002-08-18 20:27
2002.10.24
Как мне избечь ошибок при поодключении DLL, содержащей функцию


1-78335
Нуждающийся
2002-10-14 10:10
2002.10.24
Как отследить закрытие приложения если я знаю его имя?


1-78484
ligor
2002-10-13 13:27
2002.10.24
Показать форму после появления основной формы программы


4-78739
Alex Che
2002-09-10 11:45
2002.10.24
Время и GetTickCount





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский