Запрос выполняется быстро, но отчет делает медленным: как отладить это?

Я запускаю 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 загружаются быстрее, чем сервер отчетов