码迷,mamicode.com
首页 > 数据库 > 详细

SQLServer优化即席缓存

时间:2016-08-16 18:40:37      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:

  查看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 = 

执行结果为:

技术分享

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

结论:

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

 

  选项设置: 

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

技术分享

SQLServer优化即席缓存

标签:

原文地址:http://www.cnblogs.com/fanzf/p/5777419.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!