Запрос выполняется быстро, но отчет делает медленным: как отладить это?
Я запускаю SSRS 08. Мой запрос имеет четыре параметра (все varchars). Я могу запустить запрос через студию управления, и она работает менее 10 секунд. Я получаю такую же производительность, если я запускаю запрос в дизайнере запросов Visual Studio.
Однако... если я попытаюсь просмотреть отчет или фактически запустить отчет после его развертывания, фактический отчет иногда занимает более 5 минут. Я запустил трассировку, и запрос, похоже, быстро входит в/из SQL-сервера. Как я могу найти, где/почему я теряю эту производительность? Я пробовал/проверял до сих пор следующее:
- В отчете нет ссылок на изображения
- Отсутствие группировки/сортировки вне хранимой процедуры
- Поскольку это прямой отчет, я перестроил его с таким же результатом (чтобы проверить, не является ли это проблемой поврежденного отчета).
- выполнила трассировку SQL при выполнении отчета, чтобы убедиться, что запрос не имеет проблем.
Основываясь на некоторых предложениях, прежде чем я переписал запрос на использование переменных вместо таких параметров
-- ...
-- Note: @Parameter is a varchar(40)
-- ...
declare @Var as varchar(40)
set @[email protected]
select * from table where [email protected]
Отметьте трассировку, и это не проблема на стороне запроса.
Ответы
Ответ 1
У меня возникла проблема с выходом отчета html в отчете, в котором было получено 32000 строк. В моем случае мне пришлось активировать "Интерактивный пейджинг", чтобы пользователь мог видеть первую страницу и мог генерировать файл Excel. Про является то, что первая страница появляется быстро, и пользователь может генерировать экспорт в Excel или PDF, минусы - это то, что пользователь может прокручивать только текущую страницу. Если пользователь хочет увидеть больше контента, он должен использовать кнопки навигации над сеткой. В моем случае пользователь принял это поведение, потому что экспорт в Excel был более важным.
Чтобы активировать "Интерактивный пейджинг", вы должны щелкнуть по свободной области в панели отчета и изменить свойство "InteractiveSize" \ "Height" на уровне отчета в панели "Свойства". Установите это свойство в отличие от 0. Я установил 8,5 дюйма в моем случае. Также убедитесь, что вы сняли флажок "Держать вместе на одной странице, если возможно" на уровне Tablix (щелкните правой кнопкой мыши на Tablix, затем "Свойства Tablix", затем "Общие" \ "Параметры разрыва страницы" ).
![Панель свойств отчета]()
Ответ 2
Я искал аналогичную проблему некоторое время назад, и оказалось, что это связано с браузером, который я использовал для просмотра отчета. Если отчет возвращает много данных на экран, подумайте о том, чтобы разбить его на несколько страниц, если он еще не настроен таким образом.
Почему отчеты Business Intelligence загружаются быстрее, чем сервер отчетов
Ответ 3
Я думаю, что, возможно, нашел мой ответ на тему social.msdn.microsoft.com
http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/1e34dc76-4d78-4376-89b0-7c381ed82726/
Я снял флажок "Keep together", и теперь он фактически просматривает информацию с сервера, и я могу экспортировать отчет. Значительное улучшение