powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / SSRS 2012
3 сообщений из 3, страница 1 из 1
SSRS 2012
    #39345065
Demer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Помогите побороть длительное построение отчета.

У меня есть очень сложный и тяжелый отчет, который тянет данные из MSSQL через хранимку.

Сама процедура (хранимка), получает 18 параметров и возвращающает набор данных, при запуске из Management Studio отрабатывает примерно за 3 мин. (+- 20 сек) и выдает 42000 строк.

Отчет выглядит как таблица сгруппирована и отсортирована 4 раза (строки открываются по +), есть куча расцветок ячеек.
Также в отчете 7 фильтров для выбора из них 3 со свойством multiplay


Такой отчет у меня строится около 15 минут, причем процедура выполняется все 15 минут (проверял профайлером), на построение таблицы уходит около 30 секунд.

Я копал в чем дело - почему в Management Studio процедура выполняется 3 минуты, а в отчете 15 минут.

Перепробовал все рекомендации связанные с Parameter Sniffing:
1. Использовал локальные переменные.
Код: sql
1.
2.
3.
4.
5.
6.
create proc dbo.GetAvgSalaryByLocation(@Location nvarchar(64))
as
declare
@Loc nvarchar(64)
set @Loc = @Location
...


2. Использовал опцию OPTION (RECOMPILE).
3. Использовал опцию OPTIMIZE FOR.

Во всех случаях отчет отрабатывал гораздо быстрее. НО только первый раз. Приходилось физически удалить процедуру, и снова создать с нужными изменениями. Повторные запуски отчета были как и прежде - 15 минут.

Ещё интересный момент!
Когда я в отчете указываю параметры датасета вручную (не "@ReportID", a "112"), то процедура отрабатывает 3 минуты, но отчет все равно строится 15 минут!
...
Рейтинг: 0 / 0
SSRS 2012
    #39345218
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Demer,

была похожая тема 17944728
Но set nocount on в начало процедуры поставьте обязательно.
А само железо, где сервер отчетов, мощное? Также еще может быть задержка при передаче 42000 записей с сервера базы на сервер SSRS.
...
Рейтинг: 0 / 0
SSRS 2012
    #39345414
DanielMyts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если попробовать переделать процедуру на динамический запрос?
Тогда гарантированно будет строиться новый план выполнения запроса с учетом указанных параметров.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / SSRS 2012
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]