如果您有多个设置为同时触发的报表订阅,那么它们将在那时开始并同时运行吗?也就是说,如果您在特定时间内安排了太多报告,他们就有可能会耗尽太多的系统资源而失败?
共享订阅功能有何不同?
我对任何SSRS版本的答案感兴趣,因为我的组织使用SSRS 2005,2008,2008 R2和2012管理环境。
我尝试过搜索MSDN和Google,但我找不到任何确定的内容。我认为单独的计划都会同时触发并立即运行(竞争系统资源),因为SSRS旨在同时按需运行报告。但我可以想象共享订阅可以将报告排队以顺序运行的情况。
有没有办法全局限制可以发生的并发报告运行次数?我知道您可以在RSServerConfig文件中基于每个用户限制它。
答案 0 :(得分:4)
RsReportServer.config中有一个名为MaxQueueThreads的设置。我经常将其设置为1或2以避免泛滥服务器并粗略地为交互式SSRS用户节省资源。权衡的是,一个或两个沉重的订阅报告可能会阻塞队列并阻止其他订阅。
它在您列出的所有版本中都可用。这是doco:
答案 1 :(得分:4)
我发现了一些有趣的信息,解释了SSRS如何处理预定订阅:
创建订阅时,会向RS添加一些内容 服务器:
行位于订阅表...
一行放在Schedule和ReportSchedule表中......
创建了SQL Server代理作业...
当订阅运行时会发生以下几件事:
SQL Server代理作业在事件表中触发并放置一行......
RS服务器服务具有有限数量的线程(每个CPU 2个),用于轮询事件表...
当找到某个事件时,它会在Notifications表中放置一行并开始处理......
这来自:Troubleshooting Subscriptions: Part II...
(如果我正确地阅读了这个...)处理订阅时,报告服务将同时运行服务器中核心数的两倍。 (例如,如果你有一台双核机器,RS将同时运行4个报告订阅。)
如果其他人有更多信息,我会暂时搁置这个问题......