У меня есть отчет о SSRS, который обращается к хранимой процедуре. Если я выполню хранимую процедуру непосредственно от окна запроса, то она возвратится через менее чем 2 секунды. Однако тот же запрос, выполненный из 2005 отчетов о SSRS, занимает до 5 минут для завершения. Это только происходит на первом показе, это происходит каждый раз. Кроме того, я не вижу эту ту же проблему в других средах.
Какие-либо идеи о том, почему выполненный отчет о SSRS так замедлился бы в этой конкретной среде?
Спасибо за предложения, представленные здесь. Мы нашли решение, и оказалось, что оно связано с параметрами. SQL Server создавал запутанный план выполнения при выполнении из отчета SSRS из-за «прослушивания параметров». Обходной путь состоял в том, чтобы объявить переменные внутри хранимой процедуры и присвоить переменным входящие параметры. Затем в запросе использовались переменные, а не параметры. Это привело к тому, что запрос будет выполняться согласованно, независимо от того, вызывается ли он из SQL Server Manager или через отчет SSRS.
Пара вещей, которые вы можете сделать, не выполняя фактический отчет, просто запустите sproc из вкладки данных в службах отчетности. Это все еще занимает время? Другой вариант - использовать SQL Profiler и определить, что входит и выходит из системы базы данных.
Еще одна вещь, которую вы можете сделать для проверки, - воссоздать простой отчет без каких-либо параметров. Запустите отчет и посмотрите, есть ли разница. Возможно, ваш RS-отчет поврежден или плохо сформирован, что может вызвать очень медленный рендеринг.