Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Microsoft Fabric SQL veritabanı
Her sorgu planı için SQL Server tarafından önbelleğe alınan bir satır döndürür, böylece sorgu daha hızlı yürütülür. Bu dinamik yönetim görünümünü kullanarak önbellekli sorgu planlarını, önbelleklenmiş sorgu metnini, önbellekli planların aldığı bellek miktarını ve önbelleğe alınan planların yeniden kullanım sayısını bulabilirsiniz.
Azure SQL Veritabanı'nda dinamik yönetim görünümleri, veritabanının kapsamasını etkileyecek bilgileri veya kullanıcının erişimi olan diğer veritabanları hakkındaki bilgileri kullanıma sunmaz. Bu bilgiyi açığa çıkarmamak için, bağlı kiracına ait olmayan veri içeren her satır filtrelenir. Ayrıca, memory_object_address ve pool_id sütunlarındaki değerler filtrelenir; sütun değeri NULL olarak ayarlanır.
Uyarı
Bunu Azure Synapse Analytics veya Analytics Platform Sistemi'nden (PDW) çağırmak için adını sys.dm_pdw_nodes_exec_cached_planskullanın. Bu söz dizimi, Azure Synapse Analytics'teki sunucusuz SQL havuzu tarafından desteklenmez.
| Sütun adı | Veri türü | Description |
|---|---|---|
| bucketid | int | Girişin önbelleğe alındığı hash bucket'in kimliği. Değer, önbellek türü için 0'dan hash tablo boyutuna kadar bir aralık gösterir. SQL Planları ve Nesne Planları önbellekleri için, hash tablosu boyutu 32-bit sistemlerde 10007'ye, 64-bit sistemlerde ise 40009'a kadar olabilir. Bound Trees önbelleği için, hash tablosu boyutu 32-bit sistemlerde 1009'a, 64-bit sistemlerde ise 4001'e kadar olabilir. Genişletilmiş Depolanmış Prosedürler önbelleği için 32 bit ve 64 bit sistemlerde hash tablosu boyutu 127'ye kadar olabilir. |
| Refcounts | int | Bu önbellek nesnesine referans veren önbellek nesnelerinin sayısı. Bir girişin önbelleğe girmesi için refcounts en az 1 olmalıdır. |
| Kullanım sayıları | int | Önbellek nesnesinin kaç kez araştırıldığı. Parametrizlenmiş sorgular önbellekte bir plan bulduğunda artırılmaz. Showplan kullanırken birden fazla kez artırılabiliyor. |
| size_in_bytes | int | Önbellek nesnesi tarafından tüketilen bayt sayısı. |
| memory_object_address | varbinary(8) | Önbelleğe alınan girişin bellek adresi. Bu değer, önbelleğe alınan planın bellek dağılımını almak için sys.dm_os_memory_objects ile ve girişin önbelleğe alınma maliyetini elde etmek için sys.dm_os_memory_cache_entries ile kullanılabilir_entries kullanılabilir. |
| cacheobjtype | nvarchar(34) | Önbellekteki nesne türü. Değer aşağıdakilerden biri olabilir: Derlenmiş Plan Derlenmiş Plan Taslağı Çözümleme Ağacı Genişletilmiş İşlem CLR Derlenmiş Func CLR Derlenmiş İşlem |
| objtype | nvarchar(16) | Nesne türü. Aşağıda olası değerler ve bunlara karşılık gelen açıklamalar yer almaktadır. Proc: Saklanan prosedür Hazırlanmış: Hazırlanmış açıklama Geçici soru: Geçici soru. Uzak prosedür çağrıları yerine osql veya sqlcmd kullanılarak gönderilen Transact-SQL dil olaylarını ifade eder. ReplProc: Replikasyon-filtre-prosedürü Tetikleyici: Tetikleyici Görünüm: Görüntü Varsayılan: Varsayılan UsrTab: Kullanıcı tablosu SysTab: Sistem tablosu Kontrol: Kısıtlama KONTROLÜ Kural: Rule |
| plan_handle | varbinary(64) | Bellek içindeki planın tanımlayıcısı. Bu tanımlayıcı geçicidir ve yalnızca plan önbellekte kalırken sabit kalır. Bu değer aşağıdaki dinamik yönetim fonksiyonlarıyla kullanılabilir: sys.dm_exec_sql_text sys.dm_exec_query_plan sys.dm_exec_plan_attributes |
| pool_id | int | Bu plan bellek kullanımının hesaba alındığı kaynak havuzunun kimliği. |
| pdw_node_id | int |
için geçerlidir: Azure Synapse Analytics, Analiz Platformu Sistemi (PDW) Bu dağıtımın üzerinde olduğu düğümün tanımlayıcısı. |
1
Permissions
SQL Server ve SQL Yönetilen Örneği'ne VIEW SERVER STATE izni gerekir.
SQL Veritabanı Temel,S0 ve S1 hizmet hedeflerinive elastik havuzlardaki veritabanları için, sunucu yöneticisi hesabı, Microsoft Entra yönetici hesabı veya ##MS_ServerStateReader##sunucu rolü üyeliği gereklidir. Diğer tüm SQL Veritabanı hizmet hedeflerinde, veritabanında VIEW DATABASE STATE izni veya ##MS_ServerStateReader## sunucu rolü üyeliği gereklidir.
SQL Server 2022 ve üzeri için izinler
Sunucuda SUNUCU PERFORMANS DURUMUNU GÖRÜNTÜLE izni gerektirir.
Örnekler
A. Yeniden kullanılan önbelleğe alınan girişlerin toplu metnini geri döndürmek
Aşağıdaki örnek, birden fazla kez kullanılan önbelleğe alınmış tüm girişlerin SQL metnini döndürür.
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. Tüm önbelleklenmiş tetikleyiciler için sorgu planlarını geri döndürmek
Aşağıdaki örnek, önbelleklenmiş tüm tetikleyicilerin sorgu planlarını döndürür.
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. Planın derlendiği SET seçeneklerinin geri verilmesi
Aşağıdaki örnek, planın derlendiği SET seçeneklerini geri getirir.
sql_handle Planın geri dönüşü de vardır. PIVOT operatörü, ve sql_handle niteliklerini satır olarak değil, sütun olarak çıkarmak set_options için kullanılır. Döndürülen değer set_optionshakkında daha fazla bilgi için 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 önbellekli derlenmiş planların bellek dağılımını döndürmek
Aşağıdaki örnek, önbellekteki tüm derlenmiş planların kullandığı belleğin bir dağılımı geri getirir.
SELECT plan_handle, ecp.memory_object_address AS CompiledPlan_MemoryObject,
omo.memory_object_address, 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.
Dinamik Yönetim Görünümleri ve İşlevleri (Transact-SQL)
Yürütmeyle İlgili Dinamik Yönetim Görünümleri ve İşlevleri (Transact-SQL)
sys.dm_exec_query_plan (Transact-SQL)
sys.dm_exec_plan_attributes (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)
sys.dm_os_memory_objects (Transact-SQL)
sys.dm_os_memory_cache_entries (Transact-SQL)
FROM (Transact-SQL)