Почему скорость выполнения запроса может разительно отличатся в FastReport'e и в Developer'е. 4-5 минут и 5-7 секунд соответственно.
Спасибо.
А какой объем данных возвращает этот запрос ?
Скорее всего дело в том, что FastReport после выполнения запроса тянет на клиента все данные (FetchAll), а Developer показывает только несколько первых строк запроса. И если запрос возвращает много данных, то отсюда будет и разница в скорости.
Может просто developer - одна программа, а в FR - похожая на него, но другая программа. поэтому она разбирает и обрабатывает запрос не совсем так же как в девелопере, поэтому есть разница в скорости, но мне кажется далеко не каждый раз эта разница чувствуется, у меня такое редко бывает. Например у меня иногда скорость обработки запроса в FR зависит от того есть ли в запросе представления, сколько их, какие, если представления, по возможности, выполнить раньше и, в коде отчёта, результат этих представлений поместить в строковую переменную, а её уже подставить в основной запрос (т.е. обойтись в запросе без представлений, а просто раньше сформировать и подставлять значения), то это значительно ускоряет запрос в FR, а в девелопере эта разница может быть не видна.
Иногда полезно бывает вот так вот, облегчать, упрощать запрос насколько возможно, не использовать представления и разные навороты, которые девелопер быстро обрабатывает а FR не очень, то иногда можно очень хорошей скорости добиться.
я почти всегда переписываю запросы по разному, ищу оптимальный вариант.
Может просто developer - одна программа, а в FR - похожая на него, но другая программа. поэтому она разбирает и обрабатывает запрос не совсем так же как в девелопере
FR ни как не обрабатывает запросы, максимум что он делает, это может подставлять значение параметров.
Так что скорость выполнения запроса зависит от самого запроса (точнее говоря от SQL сервера), ну может еще от драйверов через которые запрос поступает на сервер.
Комментарии
Скорее всего дело в том, что FastReport после выполнения запроса тянет на клиента все данные (FetchAll), а Developer показывает только несколько первых строк запроса. И если запрос возвращает много данных, то отсюда будет и разница в скорости.
Иногда полезно бывает вот так вот, облегчать, упрощать запрос насколько возможно, не использовать представления и разные навороты, которые девелопер быстро обрабатывает а FR не очень, то иногда можно очень хорошей скорости добиться.
я почти всегда переписываю запросы по разному, ищу оптимальный вариант.
Так что скорость выполнения запроса зависит от самого запроса (точнее говоря от SQL сервера), ну может еще от драйверов через которые запрос поступает на сервер.