我正在使用Microsoft SQL报告进行报告但面临问题,因为我有大量数据,从巨大的意思是100000到1000000条记录。当我检索记录时,它加入了8个表,所以我想知道微软报告是否可以使用这些数据,因为我已经阅读了它减慢性能的文章,还是有任何其他选项,如Crystal Reports或任何其他组件?
我的查询在一个存储过程中,我在DataSet.xsd中填充它,然后使用ObjectDataSource在我的页面上使用它将它与报表绑定。 另一件事是我必须在报告中使用图表组件。 我在Asp.Net 4应用程序中使用Sql server 2008 R2标准版本。
答案 0 :(得分:0)
我真的怀疑你的用户正在关注100万甚至100k的记录 - 你也提到了图表控件。如果您需要为其提供灵活的聚合,请考虑将SQL Server Analysis Services添加到报表服务器并从在线数据构建多维数据集。可以使用Excel加载项来处理数字 - 它很漂亮。
也许您需要构建更多可以进行特定过滤或聚合的报告和过程。创建包含那么多行的报告会导致问题。
如果您能解释用户对所有数据的处理方式,那么可能会有更好的答案。
答案 1 :(得分:0)
您可以运行以下查询以查找:
SELECT Name, TimeDataRetrieval,TimeProcessing,TimeRendering
, TimeDataRetrieval+TimeProcessing+TimeRendering AS TotalTime,Format,Parameters,username,TimeStart
FROM dbo.ExecutionLog L WITH (NOLOCK)
INNER JOIN dbo.Catalog R WITH (NOLOCK) ON L.ReportID = R.ItemID
WHERE Name='' -- update parameters for report name
AND Format>''
ORDER BY Name
TimeDataRetrieval是查询执行所需的时间。
尝试在同一客户端上从Management Studio运行相同的查询,并比较两者的执行时间。