我如何知道查询计划无效?

时间:2013-12-17 15:15:38

标签: sql-server sql-execution-plan adhoc-queries

我正在执行

EXEC sp_recompile <tablename>

但我仍然看到此表缓存了查询计划:

SELECT
          CP.[objtype]
        , CP.[cacheobjtype]
        , CP.[size_in_bytes]
        , CP.[refcounts]
        , CP.[usecounts]
        , ST.[text]
FROM
        sys.dm_exec_cached_plans as CP
        CROSS APPLY sys.dm_exec_sql_text (CP.[plan_handle]) as ST
WHERE
        1 = 1        
        AND ST.[text] NOT LIKE '%dm_exec_cached_plans%'
        AND ST.[text] LIKE '%<tablename>%'        
ORDER BY
          CP.[objtype]

为什么会这样?

我认为该计划已失效,并会在下次执行时更新。 如果此计划无效(或标记为重新编译),是否存在查找(可能在DMV中)的方法。

感谢任何帮助。

0 个答案:

没有答案