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:

  • Derlenmiş planı

  • Derlenmiş planı saplama

  • Ağaç ayrıştırma

  • Genişletilmiş Proc

  • clr derlenmiş Func

  • clr Proc derlenmiş

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:

sys.dm_exec_sql_text

sys.dm_exec_query_plan

kullanınsys.dm_exec_plan_attributesTetikleyici

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)

Kavramlar

Using APPLY