管理运行中的进程

SQL Server Reporting Services 可监视报表服务器上正在运行的作业的状态。报表服务器会定期扫描正在进行的作业,并将状态信息写入到报表服务器数据库中。如果正在执行以下任意进程,则表明正在处理作业:对远程或本地数据库服务器的查询执行、报表处理以及报表呈现。

您可以同时管理“用户作业”和“系统作业”。用户作业是由各个用户或订阅启动的。这包括按需运行报表,请求报表历史记录快照,手动创建报表快照,以及处理标准订阅等。系统作业是由报表服务器启动的。系统作业包括计划的报表执行快照、计划的报表历史记录快照以及数据驱动订阅。

根据报表、查询复杂程度、数据量以及为报表指定的呈现格式,报表处理时间和资源使用情况会有很大的差异。具有对本地数据源的简单查询的报表通常会在数毫秒内完成,因此从不需要进行管理或优化。相反,以 PDF 或 Excel 格式呈现的大型报表可能需要很长的处理时间,这取决于硬件资源、传递选项以及是否有其他进程正在并发运行。在报表服务器上,大多数长时间运行的进程都是一些报表呈现操作以及等待查询处理结束的进程。有时,您可能希望将计算机脱机,或停止需很长时间才能完成的运行中作业,在这种情况下,则需要取消报表进程。

查看和取消作业

可以使用 SQL Server Management Studio 查看或取消报表服务器上正在运行的作业。您必须刷新页面,才能检索当前正在运行的作业的列表或从报表服务器数据库中获取最新的作业状态信息。在 Management Studio 中连接到报表服务器之后,您可以打开作业文件夹以查看该报表服务器计算机上当前正在处理的报表的列表。在“作业属性”页上显示了每个作业的状态信息。打开“取消报表服务器作业”对话框可以查看所有作业的状态信息。

可以取消以下进程:

  • 按需报表处理。

  • 计划报表处理。

  • 各用户拥有的标准订阅。

取消作业时,取消的仅仅是运行在报表服务器上的进程。由于报表服务器不管理其他计算机上发生的数据处理,因此必须手动取消其他系统上后来孤立的查询进程。可以考虑指定查询超时值以自动关闭执行时间过长的查询。有关详细信息,请参阅为报表和共享数据集处理设置超时值 (SSRS)。有关临时暂停报表的详细信息,请参阅暂停报表和订阅处理

注意注意

在极少数情况下,可能需要重新启动服务器才能取消进程。有关详细信息,请参阅启动和停止报表服务器服务

无法使用 Management Studio 列出或取消模型生成、模型处理或数据驱动订阅。Reporting Services 没有提供取消模型生成或处理的方法。但是,您可以按照本主题中的说明取消数据驱动订阅。

如何取消报表处理或订阅

  1. 在 Management Studio 中,连接到报表服务器。有关说明,请参阅如何在 Management Studio 中连接到报表服务器

  2. 打开**“作业”**文件夹。

  3. 右键单击报表,再单击**“取消作业”**。

如何取消数据驱动订阅

  1. 在文本编辑器中打开 RSReportServer.config 文件。

  2. 查找 IsNotificationService。

  3. 将其设置为 False。

  4. 保存该文件。

  5. 在报表管理器中,从报表的“订阅”选项卡或从**“我的订阅”**中删除数据驱动订阅。

  6. 删除订阅之后,在 RSReportServer.config 文件中查找 IsNotificationService,并将其设置为 True。

  7. 保存该文件。

配置检索作业状态的频率设置

正在运行的作业存储在报表服务器的临时数据库中。您可以修改 RSReportServer.config 文件中的配置设置,以控制报表服务器扫描正在进行的作业的频率,以及正在运行的作业的状态在多长时间间隔后从“新”更改为“正在运行”。RunningRequestsDbCycle 设置指定报表服务器扫描正在运行的进程的频率。默认情况下,每隔 60 秒记录一次状态信息。RunningRequestsAge 设置指定作业的状态从“新”更改为“正在运行”的时间间隔。

以编程方式管理作业

您可以通过编程方式或使用脚本来管理作业。有关详细信息,请参阅 ListJobsCancelJob