Страница 1 из 1

Генерация запроса к БД при формировании отчета

Добавлено: 06 май 2015, 14:49
Диана
Здравствуйте!
Есть отчет, который работает с большим количеством данных. Запрос к БД довольно прост и сам отрабатывает за 9 сек. Этот же запрос при формировании отчета может отрабатывать 20 и более минут (в зависимости от выбранного периода).

Профайлером обнаружено, что сам запрос с параметрами оборачивается в хранимую процедуру:

Код: Выделить всё

declare @p1 int
set @p1=1
exec sp_prepexec @p1 output,N'@StartDate datetime,@EndDate datetime',N'SELECT ...
',@StartDate='2015-05-01 00:00:00',@EndDate='2015-05-06 00:00:00'
select @p1


Если прогонять в БД хранимую процедуру, то проблема такая же - очень долго отрабатывает запрос т. е. через какое-то время отвисает и потом нужно ждать пока выполнится.

Можно ли как-то оптимизировать этот момент? Потому как такие проблемы появились после недавнего обновления.

Спасибо.

Re: Генерация запроса к БД при формировании отчета

Добавлено: 06 май 2015, 15:23
HighAley
Здравствуйте.

Уточните, пожалуйста, какую версию вы сейчас используете.
Пришлите нам ваш шаблон отчёта с тестовыми данными, тогда мы сможем посмотреть что можно сделать в вашем случае.

Спасибо.

Re: Генерация запроса к БД при формировании отчета

Добавлено: 16 май 2015, 09:27
Диана
Версия 2015.1.0.0. Во вложении шаблон отчета.

В каком виде вам нужно предоставить тестовые данные?

Re: Генерация запроса к БД при формировании отчета

Добавлено: 19 май 2015, 11:46
Aleksey
Здравствуйте,

Пожалуйста, попробуйте установить следующую опцию:

Код: Выделить всё

StiOptions.Engine.AllowPrepareSqlQueries = false;
Спасибо.