![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]Никак.