Форум: "Базы";
Текущий архив: 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.45 MB
Время: 0.008 c