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

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

ProgressBar при SQL-запросе. [D3, Paradox]


АндрейБ ©   (2003-02-20 15:58:00) 

Подскажите, как можно определить приблизительное время SQL-запроса. Хотелось бы, чтоб появлялось окно с ProgressBar или что-нибудь вроде этого.


Anatoly Podgoretsky   (2003-02-21 12:27:00) [1]

Johnmen © (21.02.03 12:17)
По таймеру, тем более что речь то идет не об абстрактном запросе.


MsGuns   (2003-02-21 12:21:00) [2]

Для парадокса в свое время мы делали замеры и даже прописали для себя формулу определения веремени ожидания выполнения запроса. Довольно сложная формула, куда входило множество аргументов: кол-во записей в таблице, кол-во выбираемых полей и их длина, наличие индексов, примерный процент (или кол-во) ожидаемых выходных записей и т.д. На связанных запросах коэффициенты как-то хитро перемножались. Самое главное, что получали характеристики, довольно приближенные к реальным затратам времени. Но один минус - все это хорошо работало только на локальном диске. Как только ставилось на сетку, все характеристики летели к черту ;)

И еще. На связанные запросы к таблицам больших размеров (начиная от 1000*5000) ставили порезку на "порции". Результаты были просто ошеломительные. Так при связанном запросе с хотя бы одной неключевой таблицей при объемах данных порядка 5000*50000 записей скорость "порезанного" алгоритма повышалась в СОТНИ раз !
Правда это для 3.5. Для 4-го и более старших эффект был не такой впечатляющий.


Johnmen   (2003-02-21 12:17:00) [3]

>Anatoly Podgoretsky © (21.02.03 12:04)
Тогда конечно...Только неясно, как будет инициироваться очередной step прогрессбара...


Anatoly Podgoretsky   (2003-02-21 12:04:00) [4]

Johnmen © (21.02.03 11:01)
Это должно быть в разных потоках.


Виталий Панасенко   (2003-02-21 11:02:00) [5]

В RxLib это есть. Используются callback-функции и пример есть(работает), но у меня ничего не вышло :-(


Johnmen   (2003-02-21 11:01:00) [6]

>Desdechado © (21.02.03 10:45)

А кто и когда будет ему говорить идти ?


Desdechado   (2003-02-21 10:45:00) [7]

поставь progressbar, который как только дойдет до конца, начинает сначала. Юзер видит, что не зависли, и ждет :)


АндрейБ   (2003-02-20 17:35:00) [8]

Anatoly Podgoretsky (20.02.03 16:46)
Спасибо за вариант, но пока мне, я думаю, будет достаточно просто "ЖДИТЕ"


Виталик   (2003-02-20 17:33:00) [9]

Т.е. в итоге получится, что при очередном запросе его приблизительное время выполнения будет равно ыремени выполнения предыдущего запроса? В общем-то вариант.


Anatoly Podgoretsky   (2003-02-20 16:46:00) [10]

АндрейБ (20.02.03 16:11)
А ты корректируй после каждого запроса.


passm   (2003-02-20 16:40:00) [11]

"Ушла на базу данных..."


АндрейБ   (2003-02-20 16:36:00) [12]

>Johnmen
Спасибо


Johnmen   (2003-02-20 16:24:00) [13]

"Ждите..." самое оно !


АндрейБ   (2003-02-20 16:11:00) [14]

>Anatoly Podgoretsky
Это не выход, т.к. база постоянно пополняется.

А может можно определить объем выполненного. Или лучше просто выдать сообщение "Ждите..."?


Anatoly Podgoretsky   (2003-02-20 16:03:00) [15]

Один раз замерить, результат сохранить и в дальнешим им пользоваться.


stone   (2003-02-20 15:59:00) [16]

Никак.


Наверх

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