SQL Server中的即席查询

0    143    1

Tags:

👉 本文共约1363个字,系统预计阅读时间或需6分钟。

简介

“针对即席工作负荷进行优化” 选项用于提高包含许多一次性临时批处理的工作负荷计划缓存的效率。 如果该选项设置为 1,则数据库引擎将在首次编译批处理时在计划缓存中存储一个编译的小计划存根,而不是存储完全编译的计划。 这种情况下不会让未重复使用的编译计划填充计划缓存,从而可能有助于缓解内存压力。 但是,启用此选项可能会影响对一次性计划进行故障排除的能力。

编译的计划存根使数据库引擎能够识别此临时批处理以前已经过编译,但只存储了编译计划存根,因此当再次调用(编译或执行)此批处理时,数据库引擎会对此批处理进行编译,从计划缓存中删除编译计划存根并将完全编译的计划添加到计划缓存中。

可以通过查询 sys.dm_exec_cached_plans 目录视图并在 cacheobjtype 列中查找“已编译计划”来查找编译计划存根。 存根具有唯一 plan_handle。 编译计划存根没有与其关联的执行计划,并且查询计划句柄不会返回 XML 显示计划。

跟踪标志 8032 将缓存限制参数还原为 SQL Server 2005 (9.x) RTM 设置,此设置通常允许更大的缓存。 当频繁重复使用的缓存条目不适合缓存时,以及当“针对即席工作负荷进行优化”选项未能解决与计划缓存相关的问题时,请使用此设置。

警告

如果大缓存使较少的内存可用于其他内存消耗者(如缓冲池),则跟踪标志 8032 可能导致性能较差。

备注

将“针对即席工作负荷进行优化”选项设置为 1 只会影响新计划;已在计划缓存中的计划不受影响。

若要立即影响已缓存的查询计划,需使用 ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE 清除计划缓存,或需重启 SQL Server。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!
AiDBA后续精彩内容已被站长无情隐藏,请输入验证码解锁本文!
验证码:
获取验证码: 请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“AiDBA”或者“dbaup6”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复