即使添加了内存授予问题的索引,SQL Server 存储过程有时也会花费太长时间

-1 sql-server stored-procedures execution-plan query-performance

即使我添加了所有建议的索引,我的存储过程有时也会花费很长时间。我不断收到查询必须等待内存授予 查询计划可以在这里找到:查询计划

Eri*_*ing 8

超级基金

这个查询无疑是一场灾难,但如果它有时缓慢的原因是它正在等待内存(RESOURCE_SEMAPHORE),那么您所在的服务器可能无法承受整个工作负载。

我看到EstimatedAvailableMemoryGrant="417308"EstimatedAvailableDegreeOfParallelism="2"可以支持这一点。

您可以通过使用MAX_GRANT_PERCENT提示人为地减少“问题”查询的内存授予,并找到一个值,使其能够以更少的内存运行,而不会溢出足够的内存导致性能问题。

由于您只发布了缓存/估计计划,我无法真正告诉您问题出在哪里,但这里有一般的反模式: