SSRS报告同时触发的订阅同时运行吗?

时间:2014-02-24 04:29:30

标签: sql-server reporting-services

如果您有多个设置为同时触发的报表订阅,那么它们将在那时开始并同时运行吗?也就是说,如果您在特定时间内安排了太多报告,他们就有可能会耗尽太多的系统资源而失败?

共享订阅功能有何不同?

我对任何SSRS版本的答案感兴趣,因为我的组织使用SSRS 2005,2008,2008 R2和2012管理环境。

我尝试过搜索MSDN和Google,但我找不到任何确定的内容。我认为单独的计划都会同时触发并立即运行(竞争系统资源),因为SSRS旨在同时按需运行报告。但我可以想象共享订阅可以将报告排队以顺序运行的情况。

有没有办法全局限制可以发生的并发报告运行次数?我知道您可以在RSServerConfig文件中基于每个用户限制它。

2 个答案:

答案 0 :(得分:4)

RsReportServer.config中有一个名为MaxQueueThreads的设置。我经常将其设置为1或2以避免泛滥服务器并粗略地为交互式SSRS用户节省资源。权衡的是,一个或两个沉重的订阅报告可能会阻塞队列并阻止其他订阅。

它在您列出的所有版本中都可用。这是doco:

http://msdn.microsoft.com/en-us/library/ms157273.aspx

答案 1 :(得分:4)

我发现了一些有趣的信息,解释了SSRS如何处理预定订阅:

  

创建订阅时,会向RS添加一些内容   服务器:

     
      
  • 行位于订阅表...

  •   
  • 一行放在Schedule和ReportSchedule表中......

  •   
  • 创建了SQL Server代理作业...

  •   
     

当订阅运行时会发生以下几件事:

     
      
  • SQL Server代理作业在事件表中触发并放置一行......

  •   
  • RS服务器服务具有有限数量的线程(每个CPU 2个),用于轮询事件表...

  •   
  • 当找到某个事件时,它会在Notifications表中放置一行并开始处理......

  •   

这来自:Troubleshooting Subscriptions: Part II...

(如果我正确地阅读了这个...)处理订阅时,报告服务将同时运行服务器中核心数的两倍。 (例如,如果你有一台双核机器,RS将同时运行4个报告订阅。)

如果其他人有更多信息,我会暂时搁置这个问题......