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

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

Медленно выполняется запрос... [D5, MSSQL]


Just_Dont_Know ©   (2002-10-28 18:21:00) 

Почему запрос выполняется медленно в моей программе в то время как он же через SQL Explorer выполняется раза в 4 быстрее???

Я конечно понимаю что он сложный - запрос идет к 5 таблицам со сложными вычислениями и с большим объемом данных, но почему SQL Explorer его выполняет намного быстрее...
Вроде я перед его выполнением делаю Prepare... для ускорения...

Использую параметрический запрос.
Кто может что посоветовать, подскажите пожалуйста...


sniknik   (2002-10-28 18:54:00) [1]

"внутренний оптимизатор" говориш...., сделай его сам примерная схема делаеш запрос с параметром TOP 100 например, отобразится мгновенно, а дальше в бакграунде запускай полный с асинхронным выполнением чтобы основной проге не мешать, подменить по завершении частичный датасет полным милисикундное дело а прокрутить 100 строк в гриде никакой юзер за пару секунд не сможет а если запрос больше выполняется пересмотри условие WHERE возможно оно у тебя слишком "мягкое".


Just_Dont_Know   (2002-10-28 18:49:00) [2]

Странные вещи происходят... скорость запроса стала такой же, что и в SQL Explorer... хотя я ровным счетом ничего не менял... и нагрузка на компьютер (он же сервер) не менялась...

Главное что сейчас все нормально! :)
Удачи всем!


Just_Dont_Know   (2002-10-28 18:39:00) [3]


Нет Fetch all не происходит (я так думаю) так как при скролинге по гриду как и в SQL-Explorer у меня курсор периодически меняется на [crSQLWait] то есть сразу не все данные выбираются на клиента...

Я вот думаю, может в SQL-Explorer существует "внутренний оптимизатор" запросов, который оптимизирует мой запрос и выполняет его, а не сам мой запрос...

Кто-нибудь слышал об этом?


evgeg   (2002-10-28 18:29:00) [4]

Вариант: при выполнении в SQL Explorer-е не выбираются все данные на клиента, а при вызове из программы -- выбираются (FetchAll). Fetch all происходит, например, при вызове RecordCount (для BDE).


Наверх

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