sys.dm_exec_function_stats (T-SQL)

Berlaku untuk: SQL Server 2016 (13.x) dan Azure SQL DatabaseAzure SQL Managed Instance yang lebih baru

Mengembalikan statistik performa agregat untuk fungsi yang di-cache. Tampilan mengembalikan satu baris untuk setiap rencana fungsi yang di-cache, dan masa pakai baris selama fungsi tetap di-cache. Ketika fungsi dihapus dari cache, baris yang sesuai dihilangkan dari tampilan ini. Pada saat itu, peristiwa pelacakan SQL Statistik Performa dinaikkan mirip dengan sys.dm_exec_query_stats. Mengembalikan informasi tentang fungsi skalar, termasuk fungsi dalam memori dan fungsi skalar CLR. Tidak mengembalikan informasi tentang fungsi bernilai tabel, dan tentang fungsi skalar yang sebaris dengan Scalar UDF Inlining.

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_function_stats dapat bervariasi menurut setiap eksekusi karena data hanya mencerminkan kueri yang sudah selesai, dan bukan yang masih dalam penerbangan.

Nama kolom Jenis data Deskripsi
database_id int ID database tempat fungsi berada.

Di Azure SQL Database, nilainya unik dalam satu database atau kumpulan elastis, tetapi tidak dalam server logis.
object_id int Nomor identifikasi objek fungsi.
jenis char(2) Jenis objek: FN = Fungsi bernilai skalar
type_desc nvarchar(60) Deskripsi jenis objek: SQL_SCALAR_FUNCTION
sql_handle varbinary(64) Ini dapat digunakan untuk berkorelasi dengan kueri dalam sys.dm_exec_query_stats yang dijalankan dari dalam fungsi 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 fungsi yang dikompilasi secara asli meminta tabel yang dioptimalkan memori.
cached_time datetime Waktu di mana fungsi ditambahkan ke cache.
last_execution_time datetime Terakhir kali fungsi dijalankan.
execution_count bigint Berapa kali fungsi telah dijalankan sejak terakhir dikompilasi.
total_worker_time bigint Jumlah total waktu CPU, dalam mikro detik, yang dikonsumsi oleh eksekusi fungsi ini sejak dikompilasi.

Untuk fungsi 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 fungsi dijalankan. 1
min_worker_time bigint Waktu CPU minimum, dalam mikro detik, yang pernah dikonsumsi fungsi ini selama satu eksekusi. 1
max_worker_time bigint Waktu CPU maksimum, dalam mikrostik, bahwa fungsi ini pernah digunakan selama satu eksekusi. 1
total_physical_reads bigint Jumlah total bacaan fisik yang dilakukan oleh eksekusi fungsi ini sejak dikompilasi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
last_physical_reads bigint Jumlah bacaan fisik yang dilakukan terakhir kali fungsi dijalankan.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
min_physical_reads bigint Jumlah minimum bacaan fisik yang pernah dilakukan fungsi ini selama satu eksekusi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
max_physical_reads bigint Jumlah maksimum pembacaan fisik yang pernah dilakukan fungsi ini selama satu eksekusi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
total_logical_writes bigint Jumlah total penulisan logis yang dilakukan oleh eksekusi fungsi ini sejak dikompilasi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
last_logical_writes bigint Jumlah jumlah halaman kumpulan buffer yang 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 fungsi ini selama satu eksekusi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
max_logical_writes bigint Jumlah maksimum penulisan logis yang pernah dilakukan fungsi ini selama satu eksekusi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
total_logical_reads bigint Jumlah total bacaan logis yang dilakukan oleh eksekusi fungsi ini sejak dikompilasi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
last_logical_reads bigint Jumlah bacaan logis yang dilakukan terakhir kali fungsi dijalankan.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
min_logical_reads bigint Jumlah minimum pembacaan logis yang pernah dilakukan fungsi ini selama satu eksekusi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
max_logical_reads bigint Jumlah maksimum pembacaan logis yang pernah dilakukan fungsi ini selama satu eksekusi.

Akan selalu 0 mengkueri tabel yang dioptimalkan memori.
total_elapsed_time bigint Total waktu yang berlalu, dalam mikrostik, untuk eksekusi fungsi ini yang selesai.
last_elapsed_time bigint Waktu yang berlalu, dalam mikrostik, untuk eksekusi fungsi ini yang paling baru selesai.
min_elapsed_time bigint Waktu minimum yang berlalu, dalam mikrostik, untuk setiap eksekusi fungsi ini yang telah selesai.
max_elapsed_time bigint Waktu maksimum yang berlalu, dalam mikrostik, untuk setiap eksekusi fungsi ini yang telah selesai.
total_page_server_reads bigint Jumlah total pembacaan server halaman yang dilakukan oleh eksekusi fungsi ini sejak dikompilasi.

Berlaku Untuk: Azure SQL Database Hyperscale.
last_page_server_reads bigint Jumlah pembacaan server halaman yang dilakukan terakhir kali fungsi dijalankan.

Berlaku Untuk: Azure SQL Database Hyperscale.
min_page_server_reads bigint Jumlah minimum server halaman membaca bahwa fungsi ini pernah dilakukan selama satu eksekusi.

Berlaku Untuk: Azure SQL Database Hyperscale.
max_page_server_reads bigint Jumlah maksimum server halaman membaca bahwa fungsi ini pernah dilakukan selama satu eksekusi.

Berlaku Untuk: Azure SQL Database Hyperscale.

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.

Contoh

Contoh berikut mengembalikan informasi tentang sepuluh fungsi teratas yang diidentifikasi oleh waktu rata-rata yang berlalu.

SELECT TOP 10 d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'function 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_function_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_stats (Transact-SQL)

sys.dm_exec_trigger_stats (T-SQL)
sys.dm_exec_procedure_stats (T-SQL)