sys.dm_exec_cached_plans (Transact-SQL)
Tarafından önbelleğe her sorgu planı için bir satır döndürürSQL Serverdaha hızlı sorgu yürütme.Önbelleğe alınan sorgu planlarını, önbelleğe alınan sorgu metni, bellek önbelleğe alınan planları ve önbelleğe alınan planları yeniden kullanım sayısını bulmak için bu dinamik yönetim görünümü kullanabilirsiniz.
Not
Sorgu planları için syscacheobjects sisteme sys.dm_exec_cached_plans Dinamik yönetim görünümü eşler tablo,SQL Server 2000.
sütun Name |
Veri türü |
Açıklama |
---|---|---|
bucketid |
int |
Giriş önbelleğe alınan karma Demet Kimliği.Değer aralık 0'dan önbellek türü için karma tablo boyutu gösterir. SQL planları ve plan nesne önbelleğine karma tablo boyutu en fazla 32-bit sistemlerde ve 64-bit sistemlerde 40009 10007 olabilir.Ağaçlar bağlama önbellek için karma tablo boyutu en fazla 32-bit sistemlerde ve 64-bit sistemlerde 4001 1009 olabilir.Genişletilmiş saklı yordamları ön karma tablo boyutu en fazla 127 32-bit ve 64-bit sistemlerde olabilir.Karma tablo önbellek türleri hakkında daha fazla bilgi için bkz:sys.dm_os_memory_cache_hash_tables (Transact-SQL). |
refcounts |
int |
Bu önbellek nesnesi başvuru önbellek nesnelerinin sayısı.Refcounts en az 1 önbellek. içinde olacak şekilde bir girdi olmalıdır. |
usecounts |
int |
Bu önbellek nesnesi, başlangıç bu yana kullanılan saat sayısı. |
size_in_bytes |
int |
Bayt tüketilen önbellek nesnesi. |
memory_object_address |
varbinary(8) |
Önbelleğe alınan girdinin bellek adresi.Bu değer ile kullanılabilirsys.dm_os_memory_objectsgirdi önbelleğe alma maliyetini elde etmek için _entriessys.dm_os_memory_cache_entries ve önbelleğe alınan planı bellek döküm almak için |
cacheobjtype |
nvarchar(34) |
Önbelleğe bir nesne türü.Bu değer aşağıdakilerden biri olabilir:
|
objtype |
nvarchar(16) |
Nesnenin türü.Bu 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ını
TetikleyiciTetikleyici
ViewView
DefaultDefault
UsrTabKullanıcı tablo
SysTabSistem tablosu
OnayCHECK kısıtlaması
KuralKural
|
plan_handle |
varbinary(64) |
Bellek içi plan tanımlayıcısı.Bu tanımlayıcı geçici, plan önbellekte kalırken sabit kalır.Bu değer ile aşağıdaki Dinamik yönetim işlevleri kullanılabilir: |
pool_id |
int |
Karşı bu plan bellek kullanımı için işlenmiş kaynak havuzu kimliği. |
1Başvuran uzak yordam çağrıları. Transact-SQLDil olayları kullanarak gönderilen osql veya yerine sqlcmd
İzinler
Sunucudaki SUNUCU DURUM VIEW iznine gerek duyar.
Örnekler
C.Yeniden kullanılan önbelleğe alınmış girişlerinin toplu iş iş metni döndürme
Aşağıdaki örnek, birden fazla kez kullanılmış önbelleğe alınmış tüm girişleri SQL metnini 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ı için ö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.küme seçenekleri ile plan derlendi döndürme
Aşağıdaki örnek, plan derlendi küme seçenekleri verir.The sql_handle for the plan is also returned.PIVOT işleç kullanılır çıktıset_optionsvesql_handleöznitelikler sütunlar yerine satırlar.Döndürülen değeri hakkında daha fazla bilgi içinset_optionsBkz: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.Bellek içindeki tüm önbelleğe alınan derlenmiş planlarını döndürme
Aşağıdaki örnek, bir önbellekteki tüm derlenmiş planlarının 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
See Also