|
SSRS 2012
|
|||
---|---|---|---|
#18+
Добрый день! Помогите побороть длительное построение отчета. У меня есть очень сложный и тяжелый отчет, который тянет данные из 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.
2. Использовал опцию OPTION (RECOMPILE). 3. Использовал опцию OPTIMIZE FOR. Во всех случаях отчет отрабатывал гораздо быстрее. НО только первый раз. Приходилось физически удалить процедуру, и снова создать с нужными изменениями. Повторные запуски отчета были как и прежде - 15 минут. Ещё интересный момент! Когда я в отчете указываю параметры датасета вручную (не "@ReportID", a "112"), то процедура отрабатывает 3 минуты, но отчет все равно строится 15 минут! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2016, 17:06 |
|
SSRS 2012
|
|||
---|---|---|---|
#18+
Demer, была похожая тема 17944728 Но set nocount on в начало процедуры поставьте обязательно. А само железо, где сервер отчетов, мощное? Также еще может быть задержка при передаче 42000 записей с сервера базы на сервер SSRS. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2016, 20:42 |
|
|
start [/forum/topic.php?fid=31&msg=39345218&tid=1533147]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 267ms |
total: | 391ms |
0 / 0 |