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

Вниз

Тормозит Locate в FIBPlus   Найти похожие ветки 

 
Fareader   (2002-01-29 11:16) [0]

Поставил я эту библиотеку. По сравнению с IBX конечно быстрее. Но вот только локейт медлено идет, попробюовал через фильтр - быстрее. Можно ли локейт ускорить?


 
Alexandr   (2002-01-29 11:24) [1]

через какой еще фильтр ты пробовал?


 
Praco   (2002-01-29 11:31) [2]

Locate предварительно делает FetchAll для загрузки всей выборки в локальный кэш. Ускорить его нельзя. Можно ограничить объем выборки Select"а.
Если использовал локальный фильтр - то он тоже делает FetchAll - ускорения не будет.
Подробности http://ib.demo.ru/devinfo/bde.htm.


 
Desdechado   (2002-01-29 11:42) [3]

2 Praco
Не путай человека, он без БДЕ работает.

А вот использовать FIBQuery и ограничить выборку в SELECT явно быстрее, чем шарить по таблице Locate"ом


 
Alexandr   (2002-01-29 11:51) [4]

люди!
1)он с FIBPlus работает
2) Иногда все-таки нужно использовать именно Locate, а не через Select


 
Fareader   (2002-01-29 11:52) [5]

Через такой

Accept := DataSet["num_yar"]=strtoint(Out_Yar.edit1.text);



 
Alexandr   (2002-01-29 11:57) [6]

и это быстрее чем Locate????
А зачем тебе это? Это для интерфейса программы (ну типа это поиск для юзера) или для чего?


 
Fareader   (2002-01-29 12:05) [7]

Есть выборка:

select nak.num_nak, nak.kod_pl, nak.kod_gr, nak.num_yar, nak.date_smena, nak.date_in, nak.date_out,
nak.vozvrat, nak.state_nak, nak.all_sht, nak.cls_smen, nak.cls_month, nak.num_nak_u,
yar.graf, yar.ezd, yar.drive_y, yar.id, yar.kod_cx,
yar.date_print as yar_print

from (nak left join yar on nak.num_yar=yar.id)
where
(nak.state_nak between -1 and 3 and nak.state_nak<>0)
or (nak.B_Smena_F= :b_period and nak.E_Smena_F= :e_period)

order by nak.num_yar, nak.num_nak

туда уходит до 100 записей, а юзеру надо найти конкретный ярлык
(nak.num_yar), а как его найти как не через локейт. И еще: изменяю nak.state_nak, переоткрываю Dataset и эта запись уходит ниже, хотя по order by nak.num_yar, nak.num_nak она не должна никуда двигаться ???



 
Fareader   (2002-01-29 12:16) [8]

кажется нашел грабли по второй части вопроса (нарушение сортировки) в Datase.AllowedUpdateKinds в свойстве AutoCalcFields поставил false и записи не прыгают. А локейт значит дохлое дело?


 
Alexandr   (2002-01-29 12:34) [9]

1) ну можно в where дописать еще условие по nak.num_yar и каждый раз при поиске ярлыка переоткрывать запрос.
2) А после открытия FetchAll делаешь? Тогда все записи будут на клиенте и с сервера ничего тянуться при locate не будет
3) А detail у этого master нет?
4) Можно поставить таймер на locate, чтобы locate не вызывался пока пользователь не введет полностью номер ярлыка - будет только один locate вместо нескольких.
5) А какие типы полей у этого запроса? Может запрос, по которому идет поиск упростить, а остальные поля вывести в detail
6) А сам запрос сколько выполняется? А его FetchAll? А какой план запроса?


 
Fareader   (2002-01-29 12:49) [10]

1) дописывать в where - нецелесообразно, потому что нужна вся выборка, а при необходимости переход на нужный ярлык.
2)fetchall - помог - спасибо.
3) detail -нет
4)локейт идет после ввода всего номера
5)поиск идет по integer
6) запрос отрабатывается быстро

Спасибо за помощь!

А есть идеи по поводу Datase.AllowedUpdateKinds свойство AutoCalcFields
Чего это такое было?



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

Форум: "Базы";
Текущий архив: 2002.02.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.004 c
14-66684
Ender
2001-12-29 20:04
2002.02.21
Скачка Сайтов


1-66510
IronHawk
2002-02-06 17:01
2002.02.21
данные из QuickReport.Preview сохранять в 123.txt файл !


1-66512
Анонимщик
2002-02-06 11:08
2002.02.21
Помогите с печатью метафайла


14-66680
ЗЛОБНЫЙ КАРЛИК
2002-01-04 20:58
2002.02.21
Перекодирование :-(


1-66537
Василий Свиридов
2002-02-03 00:08
2002.02.21
Не знаю как сделать type xxx=record





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