sql - Report Builder 3.0 - 如何使用大型数据集运行此报告?
问题描述
我是使用大量数据开发报告的新手,所以我正在寻找一些关于我遇到的问题的建议。
我正在开发一个包含 6 个参数的 SSRS 报告。每个参数都有自己的数据集,为参数指定一个不同的值列表。
用户可以为每个参数选择任意数量的值,但 1(日期)除外。
查询看起来像;
SELECT [CURR].[PERIOD]
,[CURR].[PERIOD_MTD]
,[CURR].[CATEGORY1]
,[CURR].[CATEGORY2]
,[CURR].[CATEGORY3]
,[CURR].[CATEGORY4]
,[CURR].[CATEGORY5]
,[CURR].[CALCULATION1_ITD]
,[CURR].[CALCULATION2_ITD]
,[CURR].[CALCULATION3_ITD]
,[CURR].[CALCULATION4_ITD]
,[CURR].[CALCULATION1_MTD]
,[CURR].[CALCULATION2_MTD]
,[CURR].[CALCULATION3_MTD]
,[CURR].[CALCULATION4_MTD]
FROM [BIG_TABLE] [CURR] LEFT OUTER JOIN
[BIG_TABLE] [PREV M]
ON [CURR].[PERIOD_MTD] = [PREV M].[PERIOD]
AND [CURR].[CATEGORY1] = [PREV M].[CATEGORY1]
AND [CURR].[CATEGORY2] = [PREV M].[CATEGORY2]
AND [CURR].[CATEGORY3] = [PREV M].[CATEGORY3]
AND [CURR].[CATEGORY4] = [PREV M].[CATEGORY4]
AND [CURR].[CATEGORY5] = [PREV M].[CATEGORY5]
WHERE [CURR].[PERIOD] = @YYYYMM
AND [CURR].[CATEGORY1] IN (@PARAMETER1)
AND [CURR].[CATEGORY2] IN (@PARAMETER2)
AND [CURR].[CATEGORY3] IN (@PARAMETER3)
AND [CURR].[CATEGORY4] IN (@PARAMETER4)
AND [CURR].[CATEGORY5] IN (@PARAMETER5)
这是我遇到的问题;1 个参数有一个包含 5,500 多个值的不同列表,用户可以从中进行选择。选择所有值后,我注意到参数字段不像其他值那样填充(下图)。
报告运行时,我收到以下错误:
此消息非常含糊,但我将其隔离为报告将在此参数中使用较少值运行的事实,但不是全部。
我不确定还能尝试什么。我认为这可能是通过主数据集获取大量数据的问题。
额外的信息:
通过与 SharePoint 的共享连接访问数据源
为此报告查询的表没有索引。我想知道这是否重要,因为该表大约有 26.5mill 行。
解决方案
我建议你的方法是错误的。
如果您向用户展示一个包含 5000 多个项目的列表以供选择,我猜他们会选择其中的一小部分或想要选择所有项目,他们不太可能会坐在那里并从中选择 100 个项目一个列表。
如果是这种情况,那么我建议将“ALL”选项附加到列表中(UNION
添加到您的原始列表中),然后像这样修改查询......
WHERE [CURR].[PERIOD] = @YYYYMM
AND (@PARAMETER1 = 'ALL' OR [CURR].[CATEGORY1] IN (@PARAMETER1))
...
...
您可能还想阅读这些以前的 SO 问题和 MS 文章。
https://docs.microsoft.com/en-us/sql/t-sql/language-elements/in-transact-sql?view=sql-server-ver15
推荐阅读
- ms-word - Microsoft Office 加载项 javascript:按 matchPrefix:true 搜索 - 如何获取匹配前缀的完整单词
- html - 无法在打印预览中水平对齐图像
- javascript - Geoserver WMS 调用未返回底图
- python - Keras Dense 层的输入未展平
- swift - Pod Init 使用 Xcode 在 Swift 中为 CocoaPods 默认选项设置为 OSX 而不是 IOS?
- fiware-orion - Fiware Global 全球 cosmos 实例如何订阅我的 Orion
- scapy - Scapy - 无法发送带有 VLAN 标记的数据包
- batch-file - 批处理文件控制台不停止显示输出
- python - 在烧瓶应用程序之外继承全局变量
- javascript - Angular 6 嵌套 FormArray