作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
执行计划下载链接:https://www.dropbox.com/s/3spvo46541bf6p1/Execution%20plan.xml?dl=0
我正在使用 SQL Server 2008 R2
我有一个非常复杂的存储过程,它在执行时请求太多内存。下面是执行计划的截图:
http://s15.postimg.org/58ycuhyob/image.png
基础查询可能需要大量调整,如大量估计行所示,但这不是重点。无论查询的复杂程度如何,都不应该请求 3 GB 内存 执行时。
我如何防止这种行为? 我尝试了以下方法:
最佳答案
你说优化查询不是重点,但实际上它只是重点。执行查询时,SQL Server 会在生成执行计划后保留执行查询所需的内存。估计中间结果保存的行越多,估计需要的内存就越多。
因此,重写您的查询和/或创建新索引以获得合适的查询计划。快速浏览一下查询计划会显示一些没有连接谓词的嵌套循环和一些可能只使用了少数记录的表扫描。
关于SQL Server 存储过程减少授予的内存量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28434175/
我是一名优秀的程序员,十分优秀!