sys.dm_exec_procedure_stats (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform 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)