如何跟踪查询缓存的改进?

时间:2010-05-11 21:33:42

标签: sql-server sql-server-2005 perfmon query-cache database-tuning

我正在参数化我的网络应用程序的ad hoc sql。因此,我希望查询计划缓存的大小减小并具有更高的命中率。也许甚至其他重要指标也会得到改善。

我可以使用perfmon来跟踪这个吗?如果是这样,我应该使用什么计数器?如果不是perfmon,我怎么能报告这种变化的影响?

2 个答案:

答案 0 :(得分:1)

您可以使用SQL Server Profiler。创建新跟踪,并捕获TSQL-> Exec Prepared Sql和TSQL->准备Sql事件。前者会告诉您何时重用查询计划,后者在重新生成计划时。

对于存储过程,您也可以在SP类别的事件下执行相同操作。

答案 1 :(得分:1)

SQL Server, Plan Cache Object

  

缓存命中率缓存命中与查找之间的比率   缓存对象计数缓存中缓存对象的数量   缓存页面缓存对象使用的8千字节(KB)页数   正在使用的缓存对象正在使用的缓存对象数。

此外,sys.dm_os_memory_clerkssys.dm_os_memory_cache_counters将提供有关内存分配(一般情况下)和SQL缓存(一般情况下)的信息。您将对计划缓存内存职员的分配感兴趣。

最后还有执行DMV:sys.dm_exec_query_statssys.dm_exec_cached_plans

这些计数器和DMV应涵盖您所需的内容,有关详细信息,请参阅Execution Plan Caching and Reuse