içinsys.dm_exec_cached_plansDinamik (Transact-sql)
Tarafından önbelleğe alınan her sorgu planı için bir satır döndürür SQL Serverdaha hızlı sorgu yürütme için. Bu dinamik yönetimi görünüm, önbelleğe alınan sorgu planlarını, önbelleğe alınan sorgu metni, önbelleğe alınan planları ve önbelleğe alınmış planlarının yeniden sayımı tarafından alınan bellek miktarını bulmak için kullanabilirsiniz.
Sütun adı |
Veri türü |
Açıklama |
---|---|---|
bucketid |
int |
Hangi giriş önbelleğe alınan karma kova Kımlığı. Değer aralığı 0 ile karma tablo boyutu için önbellek türünü gösterir. sql planları ve nesne planları önbellekleri için karma tablo boyutu kadar 10007 40009 64 bit sistemlerde 32-bit sistemlerde ve kadar olabilir. Ağaçlar bağlı önbellek için karma tablo boyutu kadar 1009 4001 64 bit sistemlerde 32-bit sistemlerde ve kadar olabilir. Genişletilmiş saklı yordamlar önbelleğine karma tablo boyutu 32-gem ve 64-bit sistemlerde en fazla 127 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ı. Refcounts önbellek giriş için en az 1 olmalıdır. |
usecounts |
int |
Kaç kez önbellek nesnesi baktı. Parametreli sorgular bir planı önbellekte bulduğunuzda 'er değil. 'Er artırılabilir defalarca showplan kullanırken. |
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 ile ve önbelleğe alınan plan bellek dökümü almak için sys.dm_os_memory_cache_entries_entries maliyet girdisi önbelleğe almak için. |
cacheobjtype |
nvarchar(34) |
Önbellekteki nesne türü. Değeri aşağıdakilerden biri olabilir:
|
objtype |
nvarchar(16) |
Nesne türü. Değeri aşağıdakilerden biri olabilir:
DeğerAçıklama
ProcSaklı yordam
HazırlananHazır deyimi
AdhocAd hoc sorgu1
ReplProcÇoğaltma filtre yordamı
TetikleyiciTetikleyici
GörünümGörünüm
DefaultDefault
UsrTabKullanıcı tablosu
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 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 |
Karşı olan bu planı bellek kullanımı sorumluydu kaynak havuzu Kımlığı. |
1 Başvurduğu Transact-SQLkullanarak dil olayları olarak gönderilen osqlya sqlcmdyerine uzak yordam çağrıları olarak.
İzinler
Sunucu üzerindeki VIEW server state izni gerektirir.
Örnekler
A.Yeniden kullanılan önbelleğe alınan girdileri toplu metni döndürme
Aşağıdaki örnek, birden fazla kez kullanılmış olan 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
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
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.set seçenekleri ile plan derlenen döndürme
Aşağıdaki örnek, birlikte plan derlenen set seçenekleri verir. sql_ handle İçin planı da döndü. PIVOT işlecini kullanılan çıkış set_ options ve sql_ handle öznitelikleri satır yerine sütun olarak. Döndürülen değeri hakkında daha fazla bilgi için set_options, bakın kullanınsys.dm_exec_plan_attributesTetikleyici (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
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, derlenmiş planlarını: önbelleği 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
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.
Başvuru
Dinamik yönetimi görünümler ve işlevler (Transact-sql)
Yürütme dinamik yönetimi görünümler ve işlevler (Transact-sql) ilgili
sys.dm_exec_query_plan (Transact-sql)
kullanınsys.dm_exec_plan_attributesTetikleyici (Transact-sql)
sys.dm_exec_sql_text (Transact-sql)
sys.dm_os_memory_objects (Transact-sql)
sys.dm_os_memory_cache_entries (Transact-sql)