【发布时间】:2018-01-19 15:50:17
【问题描述】:
我试图弄清为什么 SSRS 报告突然开始需要 30 或 40 分钟而不是 2 或 3 分钟才能运行,我已将问题归结为它有多个数据集这一事实,所以同时运行多个查询。
有 5 个查询,分别需要 30-90 秒,通过选中 SSRS 数据源中的“处理查询时使用单个事务”框,从而使其以串行方式而不是并行方式运行查询,我可以它运行大约 7 分钟,这是有道理的,因为这是他们单独花费的总时间。
我无法确定导致性能突然恶化的服务器更改,但我设法将问题归结为我不太了解的行为 - 简化示例归结为:
如果我对我的服务器运行查询,则运行时间相当一致。但是如果我同时运行两次相同的查询,它所花费的时间远远超过运行一次的时间。
我希望它花费的时间比单独运行查询要长,但不会超过运行两次。实际发生的情况是,其中一个查询的完成时间大约是原始时间的 1.5 倍,但另一个查询的时间比原来的两倍长得多。
事实上,在某些情况下,一旦一个查询完成,另一个查询从那时起 完成的时间比单独运行时要长得多。我只能假设这意味着第一个查询使用的所有资源都需要一段时间才能完成释放。
我很难在活动监视器中看到很多看起来不寻常的东西。有什么我应该检查的吗?!
【问题讨论】:
-
个人资料跟踪将是我开始的地方。
-
您使用的是什么版本的 SQL?你用的是什么事务隔离?
-
对我来说听起来像是资源问题。
-
SQL 2016,并且隔离级别被读取提交
-
我将运行一个跟踪,看看我能看到什么