Чи зберігає SQL Server 2008 дату створення планів виконання?


13

Нещодавно ми оновили застосований нами додаток, який передбачав зміну схеми для бази даних. Ці зміни могли змусити відмовитися від кешованих планів виконання. Якби SQL Server був змушений створити купу нових планів, це могло б уповільнити роботу користувачів. Я хотів би дізнатися, чи так це було

Отже, моє запитання: чи зберігає SQL Server 2008 дата створення планів виконання кешованих даних? У поданні управління sys.dm_exec_cached_plansнемає жодних полів дати, тому я підозрюю, що цього немає.

Відповіді:


12

Він не зберігається sys.dm_exec_cached_plans, і він не похований ніде в XML плану, який я можу знайти. Однак в інших DMV є корисна інформація.

Для збережених процедур ми можемо отримати час, з якого було кешовано план sys.dm_exec_procedure_stats:

SELECT TOP(250) 
    p.name AS [SP Name]
    , ps.execution_count
    , ps.cached_time
FROM 
    sys.procedures p WITH (NOLOCK)
INNER JOIN 
    sys.dm_exec_procedure_stats ps WITH (NOLOCK)
ON  p.[object_id] = ps.[object_id]
WHERE 
    ps.database_id = DB_ID()
ORDER BY 
    ps.cached_time DESC 
OPTION 
    (RECOMPILE);

Для спеціальних запитів час створення sys.dm_exec_query_stats:

SELECT TOP(250) 
    st.[text] AS [QueryText]
    , qs.execution_count
    , qs.creation_time
FROM 
    sys.dm_exec_cached_plans cp WITH (NOLOCK)
INNER JOIN
    sys.dm_exec_query_stats qs WITH (NOLOCK)
ON  qs.plan_handle = cp.plan_handle
CROSS APPLY 
    sys.dm_exec_sql_text(cp.plan_handle) st
WHERE 
    cp.objtype = N'Adhoc' 
ORDER BY 
    qs.creation_time DESC 
OPTION 
    (RECOMPILE);

За словами @SqlKiwi ... перехід від create_time до cached_time стався лише тому, що процедури та тригери були додані у 2008 році та була використана можливість вибрати більш описову назву. Створений / кешований час відображає останню компіляцію, а не час створення початкового плану.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.