sys.dm_exec_procedure_stats (SQL Bertransaksi)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform System (PDW)
Mengembalikan statistik performa agregat untuk prosedur tersimpan yang disimpan dalam cache. Tampilan mengembalikan satu baris untuk setiap rencana prosedur tersimpan yang disimpan dalam 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 pelacakan SQL Statistik Performa dinaikkan mirip dengan sys.dm_exec_query_stats.
Dalam 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 dengan 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. |
| object_id | Int | Nomor identifikasi objek dari prosedur tersimpan. |
| tipe | 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 rencana 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 kali 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 rencana dijalankan. Jika halaman sudah kotor (dimodifikasi) tidak ada tulisan 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 pembacaan logis yang dilakukan oleh eksekusi prosedur tersimpan ini sejak dikompilasi. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
| last_logical_reads | bigint | Jumlah pembacaan logis yang dilakukan terakhir kali prosedur tersimpan dijalankan. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
| min_logical_reads | bigint | Jumlah minimum pembacaan logis yang pernah dilakukan prosedur tersimpan ini selama satu eksekusi. Akan selalu 0 mengkueri tabel yang dioptimalkan memori. |
| max_logical_reads | bigint | Jumlah maksimum pembacaan 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 mikro detik, untuk eksekusi yang selesai dari prosedur tersimpan ini. |
| last_elapsed_time | bigint | Waktu yang berlalu, dalam mikro detik, untuk eksekusi prosedur tersimpan ini yang terakhir selesai. |
| min_elapsed_time | bigint | Waktu minimum yang berlalu, dalam mikro detik, untuk setiap eksekusi yang selesai dari prosedur tersimpan ini. |
| max_elapsed_time | bigint | Waktu maksimum yang berlalu, dalam mikro detik, 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 tumpah terakhir kali prosedur tersimpan dijalankan. Berlaku untuk: Dimulai dengan SQL Server 2017 (14.x) CU3 |
| min_spills | bigint | Jumlah minimum halaman yang pernah diluapkan prosedur tersimpan ini selama satu eksekusi. Berlaku untuk: Dimulai dengan SQL Server 2017 (14.x) CU3 |
| max_spills | bigint | Jumlah maksimum halaman yang pernah diluapkan 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 pembacaan 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 Azure Active Directory, 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.
Keterangan
Statistik dalam tampilan diperbarui saat eksekusi prosedur tersimpan selesai.
Contoh
Contoh berikut mengembalikan informasi tentang sepuluh prosedur tersimpan teratas yang diidentifikasi dengan waktu rata-rata yang berlalu.
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 (SQL Transact)
sys.dm_exec_sql_text (Transact-SQL)
sys.dm_exec_query_plan (SQL Bertransaksi)
sys.dm_exec_query_stats (Transact-SQL)
sys.dm_exec_trigger_stats (SQL Bertransaksi)
sys.dm_exec_cached_plans (SQL Bertransaksi)