Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Instans Terkelola Azure SQL
Azure Synapse Analytics
Sistem Platform Analitik (PDW)
Database SQL di Microsoft Fabric
Mengembalikan baris untuk setiap rencana kueri yang di-cache oleh SQL Server untuk eksekusi kueri yang lebih cepat. Anda dapat menggunakan tampilan manajemen dinamis ini untuk menemukan rencana kueri yang di-cache, teks kueri yang di-cache, jumlah memori yang diambil oleh paket yang di-cache, dan jumlah penggunaan kembali paket yang di-cache.
Di Azure SQL Database, tampilan manajemen dinamis tidak dapat mengekspos informasi yang akan memengaruhi penahanan database atau mengekspos informasi tentang database lain yang dapat diakses pengguna. Untuk menghindari mengekspos informasi ini, setiap baris yang berisi data yang bukan milik penyewa yang tersambung difilter. Selain itu, nilai dalam kolom memory_object_address dan pool_id difilter; nilai kolom diatur ke NULL.
Note
Untuk memanggil ini dari Azure Synapse Analytics atau Analytics Platform System (PDW), gunakan nama sys.dm_pdw_nodes_exec_cached_plans. Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.
| Nama kolom | Jenis data | Deskripsi |
|---|---|---|
bucketid |
int | ID wadah hash tempat entri di-cache. Nilai menunjukkan rentang dari 0 hingga ukuran tabel hash untuk jenis cache. Untuk cache Paket SQL dan Rencana Objek, ukuran tabel hash dapat mencapai 10.007 pada sistem 32-bit dan hingga 40.009 pada sistem 64-bit. Untuk cache Pohon Terikat, ukuran tabel hash dapat mencapai 1.009 pada sistem 32-bit dan hingga 4.001 pada sistem 64-bit. Untuk cache Extended Stored Procedures, ukuran tabel hash dapat mencapai 127 pada sistem 32-bit dan 64-bit. |
refcounts |
int | Jumlah objek cache yang mereferensikan objek cache ini.
refcounts harus minimal 1 agar entri berada di cache. |
usecounts |
int | Berapa kali objek cache telah dicari. Tidak mengalami peningkatan saat kueri berparameter menemukan rencana di cache. Dapat dinaikkan beberapa kali saat menggunakan showplan. |
size_in_bytes |
int | Jumlah byte yang dikonsumsi oleh objek cache. |
memory_object_address |
varbinary(8) | Alamat memori entri yang di-cache. Nilai ini dapat digunakan dengan sys.dm_os_memory_objects untuk mendapatkan perincian memori dari rencana yang di-cache dan dengan sys.dm_os_memory_cache_entries_entries untuk mendapatkan biaya penembolokan entri. |
cacheobjtype |
nvarchar(34) | Jenis objek dalam cache. Nilainya bisa menjadi salah satu dari: Paket yang Dikompilasi Stub Paket yang Dikompilasi Uraikan Pohon Proc yang Diperluas CLR Dikompilasi Func CLR Dikompilasi Proc |
objtype |
nvarchar(16) | Jenis objek. Di bawah ini adalah nilai yang mungkin dan deskripsi yang sesuai. Proc: Prosedur tersimpan Disiapkan: Pernyataan yang disiapkan Ad hoc: Kueri ad hoc. Mengacu pada Transact-SQL yang dikirimkan sebagai peristiwa bahasa dengan menggunakan osql atau sqlcmd alih-alih sebagai panggilan prosedur jarak jauh. ReplProc: Prosedur filter replikasi Pemicu: Pemicu Tampilan: Tampilan Default: Default UsrTab: Tabel pengguna SysTab: Tabel sistem Pemeriksaan: PERIKSA batasan Aturan: Aturan |
plan_handle |
varbinary(64) | Pengidentifikasi untuk paket dalam memori. Pengidentifikasi ini bersifat sementara dan tetap konstan hanya saat paket tetap berada di cache. Nilai ini mungkin digunakan dengan fungsi manajemen dinamis berikut: sys.dm_exec_sql_text sys.dm_exec_query_plan sys.dm_exec_plan_attributes |
pool_id |
int | ID kumpulan sumber daya tempat penggunaan memori paket ini diperhitungkan. |
pdw_node_id |
int | Pengidentifikasi untuk simpul tempat distribusi ini aktif. Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW) |
Permissions
SQL Server 2019 (15.x) dan versi yang lebih lama memerlukan VIEW SERVER STATE izin.
SQL Server 2022 (16.x) dan versi yang lebih baru, dan Azure SQL Managed Instance, memerlukan VIEW SERVER PERFORMANCE STATE izin.
Pada tujuan layanan Azure SQL Database Basic, S0 Pada semua tujuan layanan SQL Database lainnya, izin VIEW DATABASE STATE pada database, atau keanggotaan dalam ##MS_ServerStateReader## peran server diperlukan.
Examples
A. Mengembalikan teks batch dari entri yang di-cache yang digunakan kembali
Contoh berikut mengembalikan teks SQL dari semua entri cache yang telah digunakan lebih dari sekali.
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;
B. Mengembalikan rencana kueri untuk semua pemicu yang di-cache
Contoh berikut mengembalikan rencana kueri dari semua pemicu yang di-cache.
SELECT plan_handle,
query_plan,
objtype
FROM sys.dm_exec_cached_plans
CROSS APPLY sys.dm_exec_query_plan(plan_handle)
WHERE objtype = 'Trigger';
C. Mengembalikan SET opsi yang digunakan untuk menyusun paket
Contoh berikut mengembalikan SET opsi tempat paket dikompilasi.
sql_handle Untuk rencana juga dikembalikan. Operator PIVOT digunakan untuk menghasilkan set_options atribut dan sql_handle sebagai kolom daripada sebagai baris. Untuk informasi selengkapnya tentang nilai yang dikembalikan di set_options, lihat sys.dm_exec_plan_attributes.
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;
D. Mengembalikan perincian memori dari semua paket yang dikompilasi cache
Contoh berikut mengembalikan perincian memori yang digunakan oleh semua paket yang dikompilasi dalam cache.
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
INNER 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';
Konten terkait
- Tampilan manajemen dinamis sistem
- Tampilan dan Fungsi Manajemen Dinamis Terkait Eksekusi (Transact-SQL)
- sys.dm_exec_query_plan (T-SQL)
- sys.dm_exec_plan_attributes (T-SQL)
- sys.dm_exec_sql_text (Transact-SQL)
- sys.dm_os_memory_objects (T-SQL)
- sys.dm_os_memory_cache_entries (T-SQL)
- Klausa FROM ditambah JOIN, APPLY, PIVOT (Transact-SQL)