sys.dm_exec_procedure_stats (T-SQL)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Mengembalikan statistik performa agregat untuk prosedur tersimpan yang di-cache. Tampilan mengembalikan satu baris untuk setiap rencana prosedur tersimpan yang di-cache, dan masa pakai baris selama prosedur tersimpan tetap di-cache. Saat prosedur tersimpan dihapus dari cache, baris terkait dihilangkan dari tampilan ini. Pada saat itu, peristiwa dinaikkan query_cache_removal_statistics
mirip dengan sys.dm_exec_query_stats untuk SQL Server dan Azure SQL Managed Instance.
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.
Catatan
Hasil sys.dm_exec_procedure_stats dapat bervariasi menurut setiap eksekusi karena data hanya mencerminkan kueri yang sudah selesai, dan bukan yang masih dalam penerbangan.
Untuk memanggil ini dari Azure Synapse Analytics atau Analytics Platform System (PDW), gunakan nama sys.dm_pdw_nodes_exec_procedure_stats
. Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.
Nama kolom | Jenis data | Deskripsi |
---|---|---|
database_id | int | ID database tempat prosedur tersimpan berada. Di Azure SQL Database, nilainya unik dalam satu database atau kumpulan elastis, tetapi tidak dalam server logis. |
object_id | int | Nomor identifikasi objek dari prosedur tersimpan. |
jenis | char(2) | Jenis objek: P = Prosedur tersimpan SQL PC = Prosedur tersimpan Assembly (CLR) X = Prosedur tersimpan yang diperluas |
type_desc | nvarchar(60) | Deskripsi jenis objek: SQL_STORED_PROCEDURE CLR_STORED_PROCEDURE EXTENDED_STORED_PROCEDURE |
sql_handle | varbinary(64) | Ini dapat digunakan untuk berkorelasi dengan kueri di sys.dm_exec_query_stats yang dijalankan dari dalam prosedur tersimpan ini. |
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 dapat digunakan dengan tampilan manajemen dinamis sys.dm_exec_cached_plans . Akan selalu 0x000 ketika prosedur tersimpan yang dikompilasi secara asli meminta tabel yang dioptimalkan memori. |
cached_time | datetime | Waktu di mana prosedur tersimpan ditambahkan ke cache. |
last_execution_time | datetime | Terakhir kali di mana prosedur tersimpan dijalankan. |
execution_count | bigint | Berapa kali prosedur tersimpan telah dijalankan sejak terakhir dikompilasi. |
total_worker_time | bigint | Jumlah total waktu CPU, dalam mikro detik, yang dikonsumsi oleh eksekusi prosedur tersimpan ini sejak dikompilasi. Untuk prosedur tersimpan yang dikompilasi secara asli, total_worker_time mungkin tidak akurat jika banyak eksekusi membutuhkan waktu kurang dari 1 milidetik. |
last_worker_time | bigint | Waktu CPU, dalam mikro detik, yang dikonsumsi terakhir kali prosedur tersimpan dijalankan. 1 |
min_worker_time | bigint | Waktu CPU minimum, dalam mikrostik, yang pernah dikonsumsi prosedur tersimpan ini selama satu eksekusi. 1 |
max_worker_time | bigint | Waktu CPU maksimum, dalam mikro detik, yang pernah dikonsumsi prosedur tersimpan ini selama satu eksekusi. 1 |
total_physical_reads | bigint | Jumlah total bacaan fisik yang dilakukan oleh eksekusi prosedur tersimpan ini sejak dikompilasi. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
last_physical_reads | bigint | Jumlah bacaan fisik yang dilakukan terakhir kali prosedur tersimpan dijalankan. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
min_physical_reads | bigint | Jumlah minimum bacaan fisik yang pernah dilakukan prosedur tersimpan ini selama satu eksekusi. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
max_physical_reads | bigint | Jumlah maksimum bacaan fisik yang pernah dilakukan prosedur tersimpan ini selama satu eksekusi. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
total_logical_writes | bigint | Jumlah total penulisan logis yang dilakukan oleh eksekusi prosedur tersimpan ini sejak dikompilasi. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
last_logical_writes | bigint | Jumlah halaman kumpulan buffer dikoreksi terakhir kali paket dijalankan. Jika halaman sudah kotor (dimodifikasi) tidak ada penulisan yang dihitung. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
min_logical_writes | bigint | Jumlah minimum penulisan logis yang pernah dilakukan prosedur tersimpan ini selama satu eksekusi. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
max_logical_writes | bigint | Jumlah maksimum penulisan logis yang pernah dilakukan prosedur tersimpan ini selama satu eksekusi. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
total_logical_reads | bigint | Jumlah total bacaan logis yang dilakukan oleh eksekusi prosedur tersimpan ini sejak dikompilasi. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
last_logical_reads | bigint | Jumlah bacaan logis yang dilakukan terakhir kali prosedur tersimpan dijalankan. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
min_logical_reads | bigint | Jumlah minimum bacaan logis yang pernah dilakukan prosedur tersimpan ini selama satu eksekusi. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
max_logical_reads | bigint | Jumlah maksimum bacaan logis yang pernah dilakukan prosedur tersimpan ini selama satu eksekusi. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
total_elapsed_time | bigint | Total waktu yang berlalu, dalam mikrostik, untuk eksekusi yang selesai dari prosedur tersimpan ini. |
last_elapsed_time | bigint | Waktu yang berlalu, dalam mikrostik, untuk eksekusi prosedur tersimpan ini yang terakhir selesai. |
min_elapsed_time | bigint | Waktu minimum yang berlalu, dalam mikrostik, untuk setiap eksekusi yang selesai dari prosedur tersimpan ini. |
max_elapsed_time | bigint | Waktu maksimum yang berlalu, dalam mikrostik, untuk setiap eksekusi yang selesai dari prosedur tersimpan ini. |
total_spills | bigint | Jumlah total halaman yang ditumpahkan oleh eksekusi prosedur tersimpan ini sejak dikompilasi. Berlaku untuk: Dimulai dengan SQL Server 2017 (14.x) CU3 |
last_spills | bigint | Jumlah halaman yang ditumpahkan terakhir kali prosedur tersimpan dijalankan. Berlaku untuk: Dimulai dengan SQL Server 2017 (14.x) CU3 |
min_spills | bigint | Jumlah minimum halaman yang pernah ditumpahkan prosedur tersimpan ini selama satu eksekusi. Berlaku untuk: Dimulai dengan SQL Server 2017 (14.x) CU3 |
max_spills | bigint | Jumlah maksimum halaman yang pernah ditumpahkan prosedur tersimpan ini selama satu eksekusi. Berlaku untuk: Dimulai dengan SQL Server 2017 (14.x) CU3 |
pdw_node_id | int | Pengidentifikasi untuk simpul tempat distribusi ini aktif. Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW) |
total_page_server_reads | bigint | Jumlah total bacaan server halaman yang dilakukan oleh eksekusi prosedur tersimpan ini sejak dikompilasi. Berlaku untuk: Azure SQL Database Hyperscale |
last_page_server_reads | bigint | Jumlah pembacaan server halaman yang dilakukan terakhir kali prosedur tersimpan dijalankan. Berlaku untuk: Azure SQL Database Hyperscale |
min_page_server_reads | bigint | Jumlah minimum server halaman membaca bahwa prosedur tersimpan ini pernah dilakukan selama satu eksekusi. Berlaku untuk: Azure SQL Database Hyperscale |
max_page_server_reads | bigint | Jumlah maksimum server halaman membaca bahwa prosedur tersimpan ini pernah dilakukan selama satu eksekusi. Berlaku untuk: Azure SQL Database Hyperscale |
1 Untuk prosedur tersimpan yang dikompilasi secara asli saat pengumpulan statistik diaktifkan, waktu pekerja dikumpulkan dalam milidetik. Jika kueri dijalankan dalam waktu kurang dari milidetik, nilainya akan menjadi 0.
Izin
Pada SQL Server dan SQL Managed Instance, memerlukan VIEW SERVER STATE
izin.
Pada tujuan layanan SQL Database Basic, S0, dan S1, dan untuk database di kumpulan elastis, akun admin server, akun admin Microsoft Entra, atau keanggotaan dalam ##MS_ServerStateReader##
peran server diperlukan. Pada semua tujuan layanan SQL Database lainnya, izin VIEW DATABASE STATE
pada database, atau keanggotaan dalam ##MS_ServerStateReader##
peran server diperlukan.
Izin untuk SQL Server 2022 dan yang lebih baru
Memerlukan izin TAMPILKAN STATUS PERFORMA SERVER pada server.
Keterangan
Statistik dalam tampilan diperbarui saat eksekusi prosedur tersimpan selesai.
Contoh
Contoh berikut mengembalikan informasi tentang sepuluh prosedur tersimpan teratas yang diidentifikasi oleh waktu yang berlalu rata-rata.
SELECT TOP 10 d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'proc name',
d.cached_time, d.last_execution_time, d.total_elapsed_time,
d.total_elapsed_time/d.execution_count AS [avg_elapsed_time],
d.last_elapsed_time, d.execution_count
FROM sys.dm_exec_procedure_stats AS d
ORDER BY [total_worker_time] DESC;
Lihat Juga
Tampilan dan Fungsi Manajemen Dinamis Terkait Eksekusi (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)
sys.dm_exec_query_plan (T-SQL)
sys.dm_exec_query_stats (Transact-SQL)
sys.dm_exec_trigger_stats (T-SQL)
sys.dm_exec_cached_plans (T-SQL)