【问题标题】:Cleaning Up Temporary SSRS Reports清理临时 SSRS 报告
【发布时间】:2009-08-26 22:57:17
【问题描述】:

我们的应用程序使用 SQL Server Reporting Services 并允许用户向报告添加自定义过滤器。为此,我们修改 RDL,然后将修改后的 RDL 上传到服务器以创建新报告。问题是报告运行一次后,就不再需要它了;这真的只是一个临时报告。显然,这最终会导致大量临时报告。我们需要一种方法来清理这些。

我们已经考虑过外部方法,例如创建服务或作业来定期删除报告,如果我们不能想出更好的方法,这可能就是我们最终会做的事情。我们想知道的是,SSRS 本身是否提供了更好的方法来做到这一点?我们考虑过尝试以某种方式使用将设置为过期的缓存实例,但这似乎仅适用于报告的已执行实例,而不适用于报告本身。据我所知,没有办法将报告设置为过期。还有其他方法可以让 SSRS 为我们清理吗?

不能立即删除报告,因为我们的执行是异步的。

【问题讨论】:

    标签: sql-server reporting-services rdl


    【解决方案1】:

    内置,什么都没有。但是自己写东西很容易。

    尝试使用一个流程来查询您的报告目录以查找超过半小时(左右)的报告。您甚至可以加入 ReportServerTempDB 以查看他们是否仍有活动会话(在这种情况下,您可以忽略它们一段时间)。

    一旦找到它们,就可以使用 Web 服务界面轻松获取它们并将它们从目录中删除。

    但是...我实际上会寻找一种更好的方法来提供自定义过滤器,使用代码。当然,您可以将过滤器作为参数提供,并使用报表中的 VB 代码将用户提供的内容转换为可以针对每一行进行评估的内容。

    罗伯

    【讨论】:

    • 检查临时数据库中的活动会话的好技巧。至于在报告中使用嵌入式代码,这是个好主意,但可能不适用于我们的场景。我们的要求是让我们的最终用户能够非常轻松地开发自己的自定义报告。要求他们为报告编写代码可能不会奏效。我还想知道评估每一行的代码会对性能产生什么影响。
    猜你喜欢
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多