Aracılığıyla paylaş


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:

  • Derlenmiş planı

  • Derlenmiş planı Saplaması

  • Ağaç ayrıştırma

  • Genişletilmiş Proc

  • CLR işlev derlenmiş

  • CLR Proc derlenmiş

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:

sys.dm_exec_sql_text

sys.dm_exec_query_plan

sys.dm_exec_plan_attributes

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