slo*_*obo 7 sql-server-2008 sql-server sql-server-2008-r2 sql-server-2012
我正在开发一个包含许多复杂的 SQL 查询的应用程序。我想尽可能长时间地将查询计划保留在过程缓存中。为了防止从过程缓存中丢弃查询计划(由于内存压力),我想为过程缓存分配足够的内存。根据这个只有10%在4GB-64GB范围“看得见的目标”存储器被用于过程缓存; 我希望这个比率更高。
有没有办法控制过程缓存的大小?SQL Server 2008 或 2012;也许一些企业版功能?
此外,如果我明确设置了 min. SQL Server 的内存?
(我知道KEEP PLAN / KEEPFIXED PLAN提示;我也知道通过临时查询准备语句的优势,所以请不要推荐这些可能性。我特别想知道控制过程缓存尺寸。)
您无法手动控制计划缓存大小。以下 Connect 项目描述了他们不会很快添加旋钮的事实,以及资源调控器在一些狭窄的用例中可能有点用处:
但是,正如我在评论中提到的,还有其他方法可以使计划缓存更有效(例如,使用“优化临时工作负载”设置)。Kimberly 更详细地解释了这一点,但本质上,此设置在缓存中放置了更小的存根,直到多次使用同一个计划,然后才缓存整个内容。在默认配置下,尤其是在有大量动态组装 SQL 的情况下,一次性计划往往会浪费大量缓存空间。如果你减少这些占用的浪费空间,你就会为多次使用的计划留出更多空间,而那些正是你想要保留的计划。
归档时间: |
|
查看次数: |
12104 次 |
最近记录: |