【发布时间】:2017-10-17 13:37:11
【问题描述】:
我最近遇到了瓶颈情况,如果我将当前版本的查询保留在报表中(在 Report Builder SSRS 2008 中设计),它将为具有特定参数的报表生成长达 15 分钟的加载时间。此 JOIN 表示一个子查询,我将其加入到非索引列上的主查询中。我们将此子查询称为“Units”。
如果我从 SQL 查询中删除“Units”联接并将其设置为报表内的单独数据集,使用 SSRS 查找函数将其链接(与 SQL 中的联接相同)到主数据集(查询),报表运行平稳,不到一分钟(大约 3 到 5 毫秒)。
请记住,“Units”子查询在单独运行时对于之前需要 15 分钟的相同参数在 5 毫秒内运行,但是当它附加到主查询时会导致严重的性能问题。
进行这种类型的分离是否有明显的好处,还是我应该进一步研究如何改进查询?使用查找与提高当前查询性能相比有哪些性能优势/劣势。
我担心这是一种情况改善,并不代表长期解决方案。我过去曾使用过这种替代方法来避免调整查询,但它并没有适得其反,但我并不完全理解使用这种变通方法对性能的影响。
谢谢, 拉杜。
【问题讨论】:
标签: sql-server performance reporting-services sql-server-2012 ssrs-2008