【问题标题】:SSRS Multi value parameters - appropriate layer for implmentation of the filterSSRS 多值参数 - 实现过滤器的适当层
【发布时间】:2009-02-04 22:53:24
【问题描述】:

在 sql 报告服务中使用多值参数时,使用数据集本身的过滤器实现列表过滤器是否更合适,数据区域控制或更改驱动数据集的实际查询?

SSRS 将支持任何场景,所以我问,除了为什么应该在一个级别而不是另一个级别上完成这一显而易见的事情之外,还有其他原因吗?

对我来说,修改查询本身并要求 RDBMS 处理过滤将是最有效的,但对于 SSRS 数据处理扩展如何处理这种情况,我可能遗漏了一些东西?

【问题讨论】:

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


    【解决方案1】:

    你是对的。方法是将参数传递给数据库引擎。

    Reporting Services 最好只用于呈现内容。您需要传回客户端 Web 浏览器的数据越少,报告的呈现速度就越快。

    您可以找到我对有关使用多值参数的类似帖子的回答。

    Passing multiple values for a single parameter in Reporting Services

    希望这会有所帮助,但请随时提出您可能有的任何其他问题。

    干杯, 约翰

    【讨论】:

      【解决方案2】:

      使用表值 UDF 是一种很好的方法,但仍然存在一个问题 - 如果在许多查询位置调用此函数,甚至在内部选择内部,可能会出现性能问题。您可以使用表变量(或临时表 ether)解决此问题:

      DECLARE @Param (Value INT)
      INSERT INTO @Param (Value) 
      SELECT Param FROM dbo.fn_MVParam(@sParameterString,',')
      ...
      where someColumn IN(SELECT Value FROM @Param)
      

      所以函数只会被调用一次。

      另外,如果您不使用存储过程,而是使用嵌入式 SQL 查询,则可以将 MVP 放入查询中: ... 其中 someColumn IN(@Param) ...

      【讨论】:

        【解决方案3】:

        使用 RDBMS 进行主过滤

        SSRS 为数据驱动显示和/或动态显示提供过滤。特别适用于子报表等

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多