SQLServer优化即席缓存

  查看SQLServer已经使用的缓存计划SQL:

SELECT 
objtype AS 'Cached Object Type',
COUNT(*) AS 'Number Of Plans',
SUM(CAST(size_in_bytes AS BIGINT))/1024/1024 AS 'Plan Cache Size (MB)',
AVG(usecounts) AS 'Avg Use Count'
FROM sys.dm_exec_cached_plans
GROUP BY objtype

  执行结果为:

  里面大部分缓存计划是即席缓存计划(Adhoc)占用,有1653Mb,平均使用次数只有72,比较低,然后我们查找一下这些占用缓存中只执行过一遍的即席缓存计划:

 

SELECT 
    COUNT(*) AS 'Number Of Plans',
    SUM(CAST(size_in_bytes AS BIGINT))/1024/1024 AS 'Plan Cache Size (MB)'
FROM sys.dm_exec_cached_plans
WHERE usecounts = 1 AND objtype = 'adhoc'

 执行结果为:

  里面只执行过一遍的即席缓存计划有1461个,占用缓存中338Mb,这228Mb用在不能重复使用的计划上,完全浪费了,可以去掉这些不用的缓存计划来释放缓存空间。

结论:

  针对即席缓存工作负荷进行优化的选项能够确保这种情况不会发生,建议所有SQLServer安装时候默认打开这个选项。

 

  选项设置: 

  打开SQLServer服务器属性->高级->针对即席工作负荷进行优化->True  就可以

转载于:https://www.cnblogs.com/fanzf/p/5777419.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值