【发布时间】:2010-05-11 21:33:42
【问题描述】:
我正在参数化我的 web 应用程序的 ad hoc sql。因此,我预计查询计划缓存的大小会减小并具有更高的命中率。也许甚至其他重要指标也会得到改进。
我可以使用 perfmon 来跟踪它吗?如果是这样,我应该使用什么计数器?如果不是 perfmon,我如何报告此更改的影响?
【问题讨论】:
标签: sql-server sql-server-2005 perfmon query-cache database-tuning
我正在参数化我的 web 应用程序的 ad hoc sql。因此,我预计查询计划缓存的大小会减小并具有更高的命中率。也许甚至其他重要指标也会得到改进。
我可以使用 perfmon 来跟踪它吗?如果是这样,我应该使用什么计数器?如果不是 perfmon,我如何报告此更改的影响?
【问题讨论】:
标签: sql-server sql-server-2005 perfmon query-cache database-tuning
缓存命中率 缓存命中和查找之间的比率。
缓存对象计数缓存中缓存对象的数量。
缓存页面 缓存对象使用的 8 KB 页数。
正在使用的缓存对象 正在使用的缓存对象数。
此外,sys.dm_os_memory_clerks 和 sys.dm_os_memory_cache_counters 将提供有关内存分配(一般)和 SQL 缓存(一般)的信息。您将对计划高速缓存存储器职员的分配感兴趣。
最后是执行 DMV:sys.dm_exec_query_stats 和 sys.dm_exec_cached_plans。
这些计数器和 DMV 应该可以满足您的需求,更多详情请参阅 Execution Plan Caching and Reuse。
【讨论】:
您可以使用 SQL Server Profiler。创建一个新跟踪,并捕获 TSQL->Exec Prepared Sql 和 TSQL->Prepare Sql 事件。前者会在重用查询计划时告诉您,后者在重新生成计划时会告诉您。
您也可以在 SP 事件类别下对存储过程执行相同操作。
【讨论】: