как програмо узнать длительность запроса

Sergey001
Дата: 01.09.2005 17:54:58
Мой запрос на получение информации из сервера через ODBC длится от нескольких минут до часа и более. Как програмо узнать длительность запроса?
Rivkin Dmitry
Дата: 01.09.2005 18:10:24
1. Спросить на форуме SQL Server
2. Срочно нужно что-то делать! Оптимизировать запрос надо. Лучше всего просить совет там-же.
Sergey001
Дата: 01.09.2005 18:11:15
хотя бы время завершения запроса
Rivkin Dmitry
Дата: 01.09.2005 18:25:01
Я думаю, что ответа на такой вопрос не дождаться. Можно попробовать соорудить что-нибудь доморощенное, например, запустив отчет с максимальным фильтром несколько раз, засечь время его подъема. То же самое сделать на промежуточных фильтрах. Каждый раз считать количество строк в отчете. Затем вычислить сколько в среднем времени требуется для одной строчки. Зная эту очень усредненную величину и запустив предварительно запрос на количество строк, можно будет весьма приблизительно вычислить время...

А почему так долго поднимается отчет? Это - не правильно! Есть проблемы, которые срочно нужно решать!
4321
Дата: 01.09.2005 18:37:03
Sergey001
Мой запрос на получение информации из сервера через ODBC длится от нескольких минут до часа и более. Как програмо узнать длительность запроса?
Если у вас запрос к прилинкованным таблица серврера, но при этом использующий кучу Jet-овских примочек, в т.ч. _в инструкции WHERE_, то ничего удивительного.

Рекомендую разбить запрос на части, например "собственно запрос получения данных" (его наиболее тяжелую часть) оформить как "Запрос к серверу" (в диалекте сервера, естественно), а уже на полученные данные подействовать джетом.
msflm
Дата: 02.09.2005 12:05:04
автор
Мой запрос на получение информации из сервера через ODBC длится от нескольких минут до часа и более. Как програмо узнать длительность запроса?
автор


debug.print now() & " начало"
код запроса
debug.print now() & " конец"

то бишь вывести время до начала выполнения запроса и в конце
разницу посчитать. :)
Пользователь2
Дата: 02.09.2005 12:43:33
В VBA есть функция Timer.

    Start = Timer
    Запрос
    Finish = Timer
    TotalTime = Finish - Start
    MsgBox "Executed in " & TotalTime & " seconds".
AlTis
Дата: 02.09.2005 13:44:46
4321
Sergey001
Мой запрос на получение информации из сервера через ODBC длится от нескольких минут до часа и более. Как програмо узнать длительность запроса?
Если у вас запрос к прилинкованным таблица серврера, но при этом использующий кучу Jet-овских примочек, в т.ч. _в инструкции WHERE_, то ничего удивительного.

Рекомендую разбить запрос на части, например "собственно запрос получения данных" (его наиболее тяжелую часть) оформить как "Запрос к серверу" (в диалекте сервера, естественно), а уже на полученные данные подействовать джетом.


самое правильное решение для данного случая.
msn13
Дата: 02.09.2005 13:48:17
Rivkin Dmitry
Я думаю, что ответа на такой вопрос не дождаться. Можно попробовать соорудить что-нибудь доморощенное, например, запустив отчет с максимальным фильтром несколько раз, засечь время его подъема. То же самое сделать на промежуточных фильтрах. Каждый раз считать количество строк в отчете. Затем вычислить сколько в среднем времени требуется для одной строчки. Зная эту очень усредненную величину и запустив предварительно запрос на количество строк, можно будет весьма приблизительно вычислить время...

А почему так долго поднимается отчет? Это - не правильно! Есть проблемы, которые срочно нужно решать!


прикольный подход
так если запрос запускается на разных машинах, то такую инфу нужно собирать по всем компам !!!!