Sql server 在SSR中创建报告的最佳实践是什么?以所有可能的方式分解相同的数据?
我需要创建SSRS报告,用户需要以多种方式查看数据(分组、比较等)。使用VisualStudio2010。SQL server 2012 为此,我使用一个存储过程,将数据转储到cte中,然后从那里进行所有分组 我的问题是: 是否有任何方法可以将数据从一个存储过程转储到#tentable,然后从该#tentable转储到多个视图(按我需要的方式分组),然后在SSRS中从不同的视图(使用数据集作为视图)查询该数据 诸如此类:Sql server 在SSR中创建报告的最佳实践是什么?以所有可能的方式分解相同的数据?,sql-server,performance,reporting-services,ssms,Sql Server,Performance,Reporting Services,Ssms,我需要创建SSRS报告,用户需要以多种方式查看数据(分组、比较等)。使用VisualStudio2010。SQL server 2012 为此,我使用一个存储过程,将数据转储到cte中,然后从那里进行所有分组 我的问题是: 是否有任何方法可以将数据从一个存储过程转储到#tentable,然后从该#tentable转储到多个视图(按我需要的方式分组),然后在SSRS中从不同的视图(使用数据集作为视图)查询该数据 诸如此类: CREATE PROCEDURE ProcName (
CREATE PROCEDURE ProcName
(
@DateFrom datetime,
@DateTo datetime
)
AS
BEGIN
CREATE #TempTable
INSERT INTO #TempTable
SELECT Col1,
Col2,
Col3,
col4...
FROM Table1 INNER JOIN Table2
CREATE VIEW MyView1
AS
SELECT Col1,
Col2
GROUP BY Col1
FROM #TempTable
CREATE VIEW MyView2
AS
SELECT Col3,
Col4
GROUP BY Col3
FROM #TempTable
CREATE VIEW MyView3
AS
SELECT Col1,
Col4
GROUP BY Col2
FROM #TempTable
END -- End of SP
GO
就性能而言,在用户需要以所有可能的方式存储数据的情况下,创建报告的最佳方式是什么?
现在我正在尝试在SSMS中进行所有计算,然后将这些数据带到SSRS中。性能很好,但有时我有多达100列。事情变得一团糟 首先,SSRS不是一个非常动态的环境。很难预测被使用的人想要突破数据的每一个方面。所以我的建议是在Excel中提供数据的PowerPivot作为替代方案。这样,他们就可以轻松地添加和删除行/列分组,并查看小计。切片机也非常方便 更具体地说,对于您的问题,我认为通常最好的做法是让存储过程只返回所有原始数据。SSRS非常擅长对数据进行分组和排序。这将减少服务器的压力,并需要稍长的处理时间。当然,如果您在运行时遇到太多需要处理的问题,您将不得不重新平衡工作负载或分配更多资源
有时候你必须要有创造力。例如,我有一个将近300列、超过10万行的报告。通常,运行或导出需要10分钟以上。因此,我打开了缓存,并安排订阅每天将其导出为.csv格式。这样,数据就可以在Excel中打开,报告可以在一天中快速重新运行 我不确定有没有好办法。我以前也做过类似的工作,并将许多参数从报表传递到数据集。这些参数用于构建动态sql,所以我可以完全控制分组排序等,但这很混乱。老实说,SSRS并不是这方面的下注工具。如果你不依赖SSR,那么看看其他替代方案,PowerBI可以非常快速地创建矩阵报告,这将完成这项工作。我认为公司不会为这样的东西付费,因为这是免费的version@Oleg您需要的是一个多维数据集。@Canadean\u PowerBI是否可以处理存储过程并具有最终用户可以选择的参数?谢谢