Aracılığıyla paylaş


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:

  • 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ğ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:

sys.dm_exec_sql_text

sys.dm_exec_query_plan

sys.dm_exec_plan_attributes

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