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

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

InterBase Query [D5, D6, D7, IB5.x]


DENpro ©   (2004-04-14 09:35:00) 

Почему при выполнении запроса компонентом Query или IBQuery, запрос выполняется в несколько раз дольше чем в WISQL, независимо от того делаешь ли Prepare перед выполнением или нет.
(К примеру в WISQL или IBExpert запрос выпоняется 4 секунды, при работе в программе он же выполняется примерно 40 секунд)?
Можно ли увеличить скорость выполнения запроса?


Соловьев   (2004-04-14 14:11:00) [1]

http://ibase.ru/ib6.htm


DENpro   (2004-04-14 12:05:00) [2]

Как я тестил время выполнения в проге.
Перед Open выводил время в Edit1 и сразу после в Edit2.
Соловьев>> Что за патч?


Соловьев   (2004-04-14 11:46:00) [3]

IBX? - может патч поставить?
Если не ошибаюсь - IBExpert и WISQL используют напрямую IB API. Из-за этого они быстрее и работают


Vlad   (2004-04-14 10:24:00) [4]


> для IBExpert это еще +2 с., что бы сделать FetchAll.

Сорри, я вот это не заметил.
Тогда действительно, в программе зашит тормоз !


Sergey13   (2004-04-14 10:22:00) [5]

2Vlad ©   (14.04.04 10:19) [8]
Так запрос везде неоптимизирован и в делфе и в эксперте. Фетч локально на его тачке 3000 записей - секунды. Где то в проге, ИМХО, тормоз зашит, просто не явно.


Vlad   (2004-04-14 10:19:00) [6]

Может и обработчики мешают, AfterScroll или AfterOpen, а может и просто запрос неоптимизированный, тогда именно такая картина и будет.


Sergey13   (2004-04-14 10:11:00) [7]

2DENpro ©   (14.04.04 09:35)  
А никакие обработчики не мешают? Типа афтерскролов, лукапов, калкфилдов? Что то уж шибко результаты отличаются. Неплохо бы промониторить твою прогу. Иногда такие вещи вылезают - волосы на голове шевелятся (из личного опыта 8-).


Vlad   (2004-04-14 10:05:00) [8]


> DENpro ©   (14.04.04 09:48) [3]

А чтобы узнать количество записей, возвращаемых запросом (если база локальная) - select count(*) в отдельном запросе, и не нужно мучать компьютер с фетчем всего набора данных.


Vlad   (2004-04-14 10:03:00) [9]


> DENpro ©   (14.04.04 09:52) [4]


> ). но факт остается фактом IBExpert делает его на много
> быстрее.

Что значит быстрее ?
Ты попробуй в том же эксперте запустить свой запрос, и после выполнения нажать кнопку Last в навигаторе. Что по времени будет ?


DENpro   (2004-04-14 09:52:00) [10]

Дело в том что у меня машина P4 2.6G/512, база локальная и я не понимаю почему так тормозит запрос(хотя он довольно сложный). но факт остается фактом IBExpert делает его на много быстрее.


DENpro   (2004-04-14 09:48:00) [11]

Запрос выдает примерно 3000 записей для IBExpert это еще +2 с., что бы сделать FetchAll.
Да я делаю Last, я бы с удовольствием его не делал, но мне необходимо знать количество записей возвращенных запросом, а без Last Query этого не знает.


Vlad   (2004-04-14 09:43:00) [12]


> DENpro ©   (14.04.04 09:35)  

IBExpert не фетчит все записи сразу, а только по мере необходимости.
А ты в программе, скорее всего либо FetchAll делаешь либо Last либо еще что-то заставляющее вытащить полный набор данных на клиента.


Johnmen   (2004-04-14 09:41:00) [13]

Такого не может быть !


Наверх

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