【问题标题】:Optimize Reporting in Reporting Services优化 Reporting Services 中的报告
【发布时间】:2011-10-20 17:20:12
【问题描述】:

我有 10 个报告和 250 个客户。所有报告都由我的客户运行,每个报告都带有参数。根据参数,相同的报告连接到不同的数据库并获得结果。我知道使用不同的参数缓存不是一种选择。但我不想在白天运行这些实时数据报告。有什么我可以做的(快照、订阅)可以在一夜之间运行并发送这些报告或保存可以在接下来的 24 小时内使用的快照吗?

提前致谢。

【问题讨论】:

    标签: sql sql-server-2008 reporting-services


    【解决方案1】:

    正如 M Fredrickson 所建议的,订阅可能会在此处起作用,具体取决于要发送的不同报告的数量。

    另一种方法是将您的数据查询合并到一个共享数据源。共享数据源可以启用缓存,并且有几个选项可以刷新该缓存,例如在首次访问时或按时间安排。见MSDN for more details

    缓存数据源面临的挑战是弄清楚如何通过将所有参数从实际数据查询中移到其他位置(通常是报表中的数据集过滤器)或单个数据元素的过滤器中,例如您的表格.

    我使用这种方法在一夜之间刷新一个 10 分钟的查询,然后在不到 30 秒的时间内返回一整天的报告,并使用许多不同的可能参数过滤数据集。

    您还可以通过在报表中使用多个数据集(有些是缓存的,有些不缓存)来将此方法与其他方法混合使用。

    【讨论】:

    • 感谢您的回复。但问题是,要实现这一点,我们需要在报告中进行大量更改,而我们目前不想这样做。
    【解决方案2】:

    我建议走订阅路线。 While you could do some fancy hack to get multiple snapshots of a single report,使用订阅会更干净。

    但是,由于您有 250 个客户和 10 个不同的报告,我怀疑您是否希望在报告管理器中配置和管理 2,500 个不同的订阅...所以我建议您 create a data driven subscription 为每个报告。

    【讨论】:

    • 在使用数据驱动订阅之前,请确保您将部署到 SQL Server 企业版。标准版 SQL Server 不支持数据驱动订阅。
    • 感谢您的回答。问题是我们使用标准版,不能使用数据驱动订阅。所以,我必须选择订阅或快照。
    • 您可以编写 SQL 查询或 .NET 代码来批量创建和更改订阅。但这需要自定义代码。
    • 事实证明我可以通过编程方式创建快照。但问题是当我尝试显示它们时,我必须在文本框的操作中使用“转到 URL”选项,这会打开一个新的浏览器窗口并需要身份验证。我的用户已经登录到我的站点,不需要知道报告服务的身份验证,我不想为他们提供身份验证。还有什么我可以做的吗?我不能使用“转到报告”选项,它抱怨非法字符。请让我知道是否有人解决了类似的问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 2010-11-04
    • 2014-07-03
    相关资源
    最近更新 更多