#sql-server #reporting-services #ssrs-2008
#sql-сервер #службы отчетов #ssrs-2008
Вопрос:
Я просматривал stackflow и msdn в поисках решения. У нас есть несколько отчетов, которые генерируют большое количество гистограмм, более 60.
Веб, база данных и серверы ssrs находятся в одной физической сети. Я изменил время повторного использования, чтобы решить проблему начальной медленной загрузки, но я не могу понять, что нужно изменить, чтобы изображения загружались быстрее.
Включение кэширования отчетов не поможет, поскольку все отчеты предоставляют данные в реальном времени на основе диапазонов дат.
Это проблема слишком большого количества диаграмм на одной странице или я делаю что-то не так? Могу ли я что-нибудь сделать, чтобы кэшировать соединение / аутентификацию для загрузки изображения?
Комментарии:
1. как быстро выполняются используемые запросы? 60 диаграмм по 1 секунде каждая = одна минута. Если запросы выполняются медленнее, общее количество будет еще хуже.
2. Отчет сам генерируется за секунду или две, но для его отображения требуется вечность. Кажется, что отдельные вызовы ReportViewerWebControl.axd генерируют изображение, которое замедляет работу отчета. Конечно, поскольку отчет отображается внутри таблицы, весь отчет должен быть завершен до того, как он начнет отображаться.
3. Вызывает ли каждый вызов обработчика ReportViewer по очереди начальный запрос, который генерирует данные отчета? Если это так, это может объяснить, почему для создания и отображения отчета требуется так много времени.
4. Если это разные экземпляры отчета, то да, каждый из них будет выполнять запрос. Может быть, возможно кэширование запроса на короткий промежуток времени, например, на пару минут? Или объединение нескольких диаграмм в один элемент отчета?
5. Я думаю, мы нашли решение. Вместо гистограммы мы будем использовать встроенное изображение, размер которого изменяется динамически. Я отправлю ответ, как только мы заработаем.