Как я узнаю, что план запроса признан недействительным?

Я исполняю

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 ответов

Другие вопросы по тегам