sys.dm_exec_cached_plans (Transact-SQL)
Tarafından önbelleğe alınmış her sorgu planı için bir satır döndürür SQL Server için daha hızlı sorgu yürütme.Bu dinamik yönetim görünümü , önbelleğe alınan sorgu planlarını, önbelleğe alınan sorgu metin, önbelleğe alınan planları ve önbelleğe alınan planları yeniden sayısı tarafından alınan bellek miktarını bulmak için kullanabilirsiniz.
Not
Sorgu planları için sys.dm_exec_cached_plans dinamik yönetim görünümü eşler için syscacheobjects sistem tablosu SQL Server 2000.
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
bucketid |
int |
Giriş önbelleğe alınan karma demet kimliği.Değer aralık 0 ile önbellek türü için karma tablo boyutu gösterir. SQL planları ve nesne planları önbellekleri için karma tablo boyutu kadar 10007 32-bit ve 64-bit sistemlerde 40009 kadar olabilir.Ağaçlar bağlı önbelleği için karma tablo boyutu kadar 1009 4001 64 bit sistemlerde 32-bit sistemlerde ve en fazla olabilir.Genişletilmiş saklı yordamları önbelleği için karma tablo boyutu en fazla 127 32-bit ve 64-bit sistemlerde olabilir.Önbellek türleri ve karma tablolar hakkında daha fazla bilgi için bkz: sys.dm_os_memory_cache_hash_tables (Transact-SQL). |
refcounts |
int |
Bu önbellek nesne başvuran önbellek nesnelerinin sayısı.Refcount'ların en az 1 önbellekte olacak şekilde bir girdi olmalıdır. |
usecounts |
int |
Sayısı bu önbellek nesne en başından beri kullanıldı. |
size_in_bytes |
int |
Önbellek nesnesi tarafından tüketilen bayt sayısı. |
memory_object_address |
varbinary(8) |
Önbelleğe alınan girdinin bellek adresi.Bu değer kullanılabilir sys.dm_os_memory_objects önbelleğe alınmış planının ve ile bellek dökümünü almak için sys.dm_os_memory_cache_entriesgiriş önbelleğe alma maliyetini elde etmek için _entries. |
cacheobjtype |
nvarchar(34) |
Önbellekteki nesne türü.Değer aşağıdakilerden biri olabilir:
|
objtype |
nvarchar(16) |
Nesne türü.Değer aşağıdakilerden biri olabilir:
DeğerAçıklama
ProcSaklı yordam
HazırHazırlanmış deyim
GeçiciAd hoc sorgu1
ReplProcÇoğaltma filtre yordamı
TetikleyiciTetikleyici
GörünümGörünüm
DefaultDefault
UsrTabKullanıcı tablo
SysTabSistem tablo
Onaycheck kısıtlaması
KuralKural
|
plan_handle |
varbinary(64) |
Bellek içi plan tanımlayıcısı.Bu tanımlayıcı, geçici ve planı önbellekte kalırken sabit kalır.Bu değeri aşağıdaki dinamik Yönetimi işlevleri ile kullanılabilir: |
pool_id |
int |
kaynak havuzu için karşı Bu plan bellek kullanımı aldığından kimliği. |
1 Başvurduğu Transact-SQL gönderilen dil olayları kullanarak osql veya sqlcmd yerine uzak yordam çağrıları.
İzinler
Sunucu üzerindeki görünüm server state izni gerektirir.
Örnekler
A.Yeniden kullanılan önbelleğe alınan girdileri toplu iş metni döndürme
Aşağıdaki örnek, birden çok kez kullanılan tüm önbelleğe alınan girdileri SQL metni verir.
SELECT usecounts, cacheobjtype, objtype, text
FROM sys.dm_exec_cached_plans
CROSS APPLY sys.dm_exec_sql_text(plan_handle)
WHERE usecounts > 1
ORDER BY usecounts DESC;
GO
B.Sorgu planları önbelleğe alınmış tüm tetikleyiciler döndürme
Aşağıdaki örnek sorgu planları önbelleğe alınmış tüm tetikleyiciler, verir.
SELECT plan_handle, query_plan, objtype
FROM sys.dm_exec_cached_plans
CROSS APPLY sys.dm_exec_query_plan(plan_handle)
WHERE objtype ='Trigger';
GO
C.Dönme planı ile derlendi seçeneklerini ayarlama
Aşağıdaki örnek ile plan derlendi set seçenekleri verir.sql_handle Planı da iade için.PIVOT işleç kullanılır çıktı set_options ve sql_handle öznitelikleri sütunlar yerine satırlar.Döndürülen değeri hakkında daha fazla bilgi için set_options, bkz: sys.dm_exec_plan_attributes (Transact-SQL).
SELECT plan_handle, pvt.set_options, pvt.sql_handle
FROM (
SELECT plan_handle, epa.attribute, epa.value
FROM sys.dm_exec_cached_plans
OUTER APPLY sys.dm_exec_plan_attributes(plan_handle) AS epa
WHERE cacheobjtype = 'Compiled Plan'
) AS ecpa
PIVOT (MAX(ecpa.value) FOR ecpa.attribute IN ("set_options", "sql_handle")) AS pvt;
GO
D.Tüm önbelleğe alınan derlenmiş planlarını bellek dökümünü döndürme
Aşağıdaki örnek önbelleğindeki tüm derlenmiş planlarını tarafından kullanılan bellek dökümünü verir.
SELECT plan_handle, ecp.memory_object_address AS CompiledPlan_MemoryObject,
omo.memory_object_address, pages_allocated_count, type, page_size_in_bytes
FROM sys.dm_exec_cached_plans AS ecp
JOIN sys.dm_os_memory_objects AS omo
ON ecp.memory_object_address = omo.memory_object_address
OR ecp.memory_object_address = omo.parent_address
WHERE cacheobjtype = 'Compiled Plan';
GO
Ayrıca bkz.