Кеш в SSRS для разных экземпляров параматера - PullRequest
1 голос
/ 12 марта 2019

У меня есть требование, согласно которому я должен консолидировать 5 отчетов SSRS.Все 5 отчетов имеют одинаковые параметры.В настоящее время я объединил все 5 табликсов в один отчет и создал новый раскрывающийся параметр, из которого пользователь может выбрать конкретный отчет.

Мой вопрос: как мне сохранить CACHE для каждого из 5 вариантов из выпадающего списка.Все 5 табликсов имеют свои 5 разных наборов данных, которые вызывают каждую из их процедур магазина.В настоящее время загрузка отчета занимает почти 5 минут, когда в раскрывающемся параметре выбран другой отчет.

ИЛИ , что является наилучшим способом объединения этих 5 отчетов в одном.Пожалуйста помоги.Спасибо.

1 Ответ

0 голосов
/ 12 марта 2019

SSRS может кэшировать все 5 версий отчета.Один из способов сделать это в SSRS 2008+ - создать подписку на основе данных.Напишите небольшой запрос, который возвращает 5 строк с различными значениями параметров.Запланируйте это для запуска и используйте значение из запроса для заполнения параметра.Установите длительность кэша примерно на 600 минут.

Это запустит отчет один раз с каждым значением параметра и кеширует их все.Это будет продолжаться в течение 10 часов, поэтому вы можете использовать его в течение дня.

Имейте в виду, что это не относится к другим параметрам, оно кэширует только те комбинации параметров, с которыми вы его запускали в прошлом10 часов.

Если вы не можете создавать подписки на основе данных, отдельные для каждого кэша будут работать нормально.В более новых версиях SSRS вы можете настроить планы обновления кэша вместо подписок.

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

...