#sql-server #sql-server-2005 #reporting-services #reportingservices-2005
#sql-сервер #sql-server-2005 #службы отчетов #reportingservices-2005
Вопрос:
Мы используем один общий источник данных, ds1
который подключается к серверу main_server
, на котором хранятся все хранимые процедуры для генерации наших отчетов.
Одна из хранимых процедур usp1
просто выполняет другую хранимую процедуру на другом сервере another_server
:
exec another_server.another_database.dbo.usp1
Когда я выполняю usp1
на main_server
, все работает нормально. Она выполняется почти с той же скоростью, как если бы я только что перешел на another_server
и выполнил оттуда…. Именно этого я и ожидал…
Однако, когда я пытаюсь запустить отчет с нашего сервера отчетов, происходит сбой. Когда я наблюдаю за ее запуском, она почти сразу переходит в приостановленный режим и остается там.
Для всех наших таймаутов установлено значение 40 минут, так что это не должно быть нашей проблемой, поскольку отчет выполняется через 15. Есть мысли?
Спасибо…
Комментарии:
1. Один из моих коллег недавно настроил экземпляр SSRS, и у него также возникли проблемы с подключением к удаленному экземпляру SQL для создания отчетов. Я полагаю, что ответ, который он нашел, но не использовал, состоял в том, чтобы установить учетную запись выполнения в отчете.
2. Если запрос отчета выполняется в течение 15 минут на main_server, то, похоже, возвращается много строк. Возможно, это генерация HTML в SSRS занимает много времени?
Ответ №1:
Возможно, учетная запись, используемая службами reporting Services для запуска отчета, не имеет правильного доступа или прав для запуска sp на другом сервере?
Комментарии:
1. Я не думаю, что это проблема, учитывая, что для тестирования я вхожу в SQL Server Management Studio, используя те же учетные данные, что и в строке подключения источника данных, без проблем.
Ответ №2:
На связанных серверах ваша хранимая процедура может скопировать ВСЕ необходимые данные перед выполнением каких-либо объединений.