我正在参数化我的网络应用程序的临时 sql。因此,我预计查询计划缓存的大小会减小并具有更高的命中率。也许甚至其他重要的指标也会得到改进。
我可以使用 perfmon 来跟踪它吗?如果是这样,我应该使用什么计数器?如果不是 perfmon,我如何报告此更改的影响?
我正在参数化我的网络应用程序的临时 sql。因此,我预计查询计划缓存的大小会减小并具有更高的命中率。也许甚至其他重要的指标也会得到改进。
我可以使用 perfmon 来跟踪它吗?如果是这样,我应该使用什么计数器?如果不是 perfmon,我如何报告此更改的影响?
Cache Hit Ratio缓存命中和查找之间的比率。
缓存对象计数缓存中的缓存对象数。
高速缓存页数高速缓存对象使用的 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 应该涵盖您需要的内容,有关更多详细信息,请参阅执行计划缓存和重用。
您可以使用 SQL Server Profiler。创建一个新的跟踪,并捕获 TSQL->Exec Prepared Sql 和 TSQL->Prepare Sql 事件。前者会在重用查询计划时告诉您,后者在重新生成计划时会告诉您。
您也可以在 SP 事件类别下对存储过程执行相同的操作。