【问题标题】:How can an improvement to the query cache be tracked?如何跟踪查询缓存的改进?
【发布时间】:2010-05-11 21:33:42
【问题描述】:

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

我可以使用 perfmon 来跟踪它吗?如果是这样,我应该使用什么计数器?如果不是 perfmon,我如何报告此更改的影响?

【问题讨论】:

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


    【解决方案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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-22
        • 1970-01-01
        • 1970-01-01
        • 2021-05-15
        相关资源
        最近更新 更多