Почему службы Reporting Services значительно медленнее, чем их запросы? - PullRequest
3 голосов
/ 04 марта 2010

У меня есть запрос, который занимает около 2 минут. Он не очень сложный с точки зрения параметров или чего-либо еще, и сам отчет не выполняет какой-либо действительно обширной обработки. В основном просто выплевывает данные прямо в хорошем формате. (На самом деле один из отчетов вообще не форматирует данные, а просто возвращает плоскую таблицу, предназначенную для работы в Excel.)

Он также не возвращает массивный набор данных.

Тем не менее, запуск отчета занимает более 30 минут.

Что могло вызвать это?

Это SSRS 2005 против базы данных SQL 2005.

РЕДАКТИРОВАТЬ: ОК, я обнаружил, что с добавлением WITH (NOLOCK) в отчет это занимает то же время, что и запрос через SSMS. Почему запрос обрабатывается иначе, если он поступает из служб отчетов (или visual studio на моем локальном компьютере), а не с SSMS на моем локальном компьютере? Я видел, как запрос выполнялся в Activity Monitor пару раз в режиме SLEEP_WAIT, но ничем не блокировался ...

EDIT2: Строка подключения:

Источник данных = SERVERNAME; Начальный каталог = DBName

Ответы [ 3 ]

0 голосов
/ 26 марта 2010

Насколько велик набор данных, который возвращается по вашему запросу? Если он очень велик, то большая часть времени, отводимого на сервер отчетов, может быть связана со временем, которое требуется для отображения отчета. Чтобы убедиться, что вы можете взглянуть на таблицу ExecutionLog на сервере отчетов, чтобы увидеть, является ли TimeRendering большим числом по сравнению с общим временем выполнения.

0 голосов
/ 21 января 2011

Я думаю, что это не редкость, но мы рассмотрели похожие проблемы.

Из памяти мы обратили внимание на то, что в нашем подотчете были параметры, и мы настроили «возможные значения» для запроса из базы данных.

Я думаю, что при каждом запуске подотчета SSRS повторно запрашивает возможные значения параметров (& выполняет любые другие запросы в вашем отчете, даже если вы не используете результаты).

В этом случае, как только мы убедились, что подотчет работает нормально, мы удалили запросы на проверку значений параметров и разрешили «любое значение», предполагая, что родительский отчет не предоставит нам неверные значения параметров.

0 голосов
/ 05 марта 2010

Определенно, запрос выполняется долго или обработка выполняется медленным сервером? Некоторые отчеты вызывают запросы несколько раз. Например, если у вас есть вложенный отчет в элементе управления списком подкачки, каждая страница этого отчета вызывает запрос отдельно. Так, может быть, что-то, что делает отчет с данными, вызывает задержку?

...