我一直在阅读关于Kimberly Tripp的sql Server计划缓存的一些很棒的文章,例如:
http://www.sqlskills.com/blogs/kimberly/plan-cache-and-optimizing-for-adhoc-workloads/
http://www.sqlskills.com/blogs/kimberly/plan-cache-and-optimizing-for-adhoc-workloads/
为什么甚至可以选择“针对临时工作负载进行优化”?这不应该一直在吗?无论开发人员是否使用ad-hoc sql,为什么不在每个支持它的实例上启用此选项(sql 2008),从而减少缓存膨胀?
解决方法
sql Server开发团队的工作原则是最小惊喜 – 因此,为了维护以前版本的行为,sql Server通常会禁用新功能.
是的,针对特殊工作负载进行优化非常有助于减少计划缓存膨胀 – 但始终先测试它!
[编辑:Kalen Delaney讲述了一则有趣的轶事,她向她的一位微软工程师朋友询问是否存在不适合启用此功能的情况.几天后他回来说 – 想象一个有很多不同查询的应用程序,每个查询总共运行两次.那可能不合适.我只想说那样的应用程序并不多!]
[编辑:如果大多数查询被执行多次(不完全是两次);这可能是不合适的.一般规则是,如果数据库上有许多一次性使用的特殊查询,则将其转为;但是,仍然没有那么多的应用程序.]