Sql server SQL Server::安装程序何时优化临时工作负载?
我读了一篇非常有趣的关于如何为临时工作负载设置优化的文章 该帖子链接到Pinal Dave制作的一个文件,该文件允许您检索AdHoc%:Sql server SQL Server::安装程序何时优化临时工作负载?,sql-server,performance,tsql,caching,Sql Server,Performance,Tsql,Caching,我读了一篇非常有趣的关于如何为临时工作负载设置优化的文章 该帖子链接到Pinal Dave制作的一个文件,该文件允许您检索AdHoc%: SELECT AdHoc_Plan_MB, Total_Cache_MB, AdHoc_Plan_MB * 100.0 / Total_Cache_MB AS 'AdHoc %' FROM ( SELECT SUM(CASE WHEN objtype = 'adhoc'
SELECT AdHoc_Plan_MB,
Total_Cache_MB,
AdHoc_Plan_MB * 100.0 / Total_Cache_MB AS 'AdHoc %'
FROM
(
SELECT SUM(CASE
WHEN objtype = 'adhoc'
THEN CONVERT(BIGINT, size_in_bytes)
ELSE 0
END) / 1048576.0 AdHoc_Plan_MB,
SUM(CONVERT(BIGINT, size_in_bytes)) / 1048576.0 Total_Cache_MB
FROM sys.dm_exec_cached_plans
) T;
我的临时百分比为61%:
Pinal说,“我个人更喜欢在看到临时百分比在20-30%之间时打开“针对临时工作负载优化”设置。”
那么,如果我有61%,我该怎么办
我应该打开还是关闭它
一、 就个人而言,当我看到临时百分比在20-30%之间时,我更愿意打开“针对临时工作负载优化”设置。“
这还不足以指示是否启用此设置。临时计划只是“通过使用osql或sqlcmd而不是作为远程过程调用,将Transact-SQL作为语言事件提交。”
-
重要的不是一个计划是否是临时的,而是该计划是否实际被重用
而是遵循文档中的建议。重要的指标不是临时计划的数量或它们使用的内存,而是一次性计划的数量:
SELECT objtype, cacheobjtype,
AVG(usecounts) AS Avg_UseCount,
SUM(refcounts) AS AllRefObjects,
SUM(CAST(size_in_bytes AS bigint))/1024/1024 AS Size_MB
FROM sys.dm_exec_cached_plans
WHERE objtype = 'Adhoc' AND usecounts = 1
GROUP BY objtype, cacheobjtype;