SQL Server 2008, yürütme planlarının oluşturulma tarihini saklıyor mu?


13

Yakın zamanda kullandığımız ve veritabanının şemasını değiştirmeyi gerektiren bir uygulamayı yeni sürüme geçirdik. Bu değişiklikler önbelleğe alınmış yürütme planlarını atılmaya zorlayabilirdi. SQL Server bir sürü yeni plan oluşturmak zorunda kaldıysa, bu kullanıcı deneyimini yavaşlatabilirdi. Durumun bu olup olmadığını öğrenmek istiyorum.

Benim sorum şu, SQL Server 2008 önbelleklenmiş yürütme planlarının oluşturulma tarihini saklıyor mu? Yönetim görünümünde sys.dm_exec_cached_plansherhangi bir tarih alanı yok, bu yüzden sanmıyorum.

Yanıtlar:


12

Saklanmıyor sys.dm_exec_cached_plans, plan XML'inde bulabileceğim herhangi bir yere gömülmüyor. Ancak diğer DMV'lerde yararlı bilgiler vardır.

Saklı yordamlar için bir planın önbelleğe alındığı zamanı alabiliriz 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);

Geçici sorgular için, oluşturma süresi 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'ye göre, yaratılış_zamanından önbellek_zamanına değişim, 2008'de prosedürlerin ve tetikleyicilerin eklenmesi ve daha açıklayıcı bir ad seçme fırsatının alınmasıydı. Oluşturulan / önbelleğe alınan zaman, orijinal planın oluşturulma zamanını değil, son derlemeyi yansıtır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.