Dela via


sys.dm_exec_function_stats (Transact-SQL)

Gäller för: SQL Server 2016 (13.x) och senare versioner Azure SQL DatabaseAzure SQL Managed Instance

Returnerar sammanställd prestandastatistik för cachelagrade funktioner. Vyn returnerar en rad för varje cachelagrad funktionsplan och radens livslängd är så länge funktionen förblir cachelagrad. När en funktion tas bort från cacheminnet tas motsvarande rad bort från den här vyn. Vid den tidpunkten genereras en SQL-spårningshändelse för prestandastatistik som liknar sys.dm_exec_query_stats. Returnerar information om skalärfunktioner, inklusive minnesinterna funktioner och CLR-skalärfunktioner. Returnerar inte information om tabellvärdesfunktioner och om skalärfunktioner som är inlindade med Scalar UDF-inlining.

I Azure SQL Database kan dynamiska hanteringsvyer inte exponera information som skulle påverka databasens inneslutning eller exponera information om andra databaser som användaren har åtkomst till. För att undvika att exponera den här informationen filtreras varje rad som innehåller data som inte tillhör den anslutna klientorganisationen bort.

Anmärkning

Resultatet av sys.dm_exec_function_stats kan variera med varje körning eftersom data endast återspeglar färdiga frågor och inte de som fortfarande är under flygning.

Kolumnnamn Datatyp Description
database_id int Databas-ID där funktionen finns.

I Azure SQL Database är värdena unika i en enskild databas eller en elastisk pool, men inte inom en logisk server.
object_id int Funktionens objektidentifieringsnummer.
type char(2) Typ av objekt: FN = Skalärvärdesfunktioner
type_desc nvarchar(60) Beskrivning av objekttypen: SQL_SCALAR_FUNCTION
sql_handle varbinary(64) Detta kan användas för att korrelera med frågor i sys.dm_exec_query_stats som kördes inifrån den här funktionen.
plan_handle varbinary(64) Identifierare för den minnesinterna planen. Den här identifieraren är tillfälligt och förblir endast konstant när planen finns kvar i cacheminnet. Det här värdet kan användas med sys.dm_exec_cached_plans dynamisk hanteringsvy.

Kommer alltid att vara 0x000 när en internt kompilerad funktion frågar en minnesoptimerad tabell.
cached_time datetime Tidpunkt då funktionen lades till i cacheminnet.
senaste_verkställningstid datetime Senaste gången som funktionen kördes.
execution_count bigint Antal gånger som funktionen har körts sedan den senast kompilerades.
total_worker_time bigint Totala mängden CPU-tid, i mikrosekunder, som har förbrukats av körningar av den här funktionen sedan den kompilerades.

För inbyggda kompilerade funktioner kanske total_worker_time inte är korrekt om många körningar tar mindre än 1 millisekund.
senaste_arbetstid bigint CPU-tid, i mikrosekunder, som förbrukades förra gången funktionen kördes. 1
min_worker_time bigint Minsta CPU-tid i mikrosekunder som den här funktionen någonsin har använt under en enda körning. 1
max_worker_time bigint Maximal CPU-tid, i mikrosekunder, som den här funktionen någonsin har förbrukat under en enda körning. 1
total_physical_reads bigint Totalt antal fysiska läsningar som utförts av körningar av den här funktionen sedan den kompilerades.

Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell.
last_physical_reads bigint Antal fysiska läsningar som utfördes förra gången funktionen kördes.

Blir alltid 0 vid frågor mot en minnesoptimerad tabell.
min_physical_reads bigint Minsta antal fysiska läsningar som den här funktionen någonsin har utfört under en enda exekvering.

Kommer alltid att vara 0 vid förfrågningar mot en minnesoptimerad tabell.
max_physical_reads bigint Maximalt antal fysiska läsningar som den här funktionen någonsin har utfört under en enda körning.

Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell.
total_logical_writes bigint Totalt antal logiska skrivningar som utförts av körningar av den här funktionen sedan den kompilerades.

Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell.
senaste_logiska_skrivningar bigint Antal buffertpoolsidor som grusades förra gången planen kördes. Om en sida redan är smutsig (ändrad) räknas inga skrivningar.

Kommer alltid att vara 0 vid frågning av en minnesoptimerad tabell.
min_logical_writes bigint Minsta antal logiska skrivningar som den här funktionen någonsin har utfört under en enda körning.

Kommer alltid att vara 0 för en minnesoptimerad tabell.
max_logical_writes bigint Maximalt antal logiska skrivningar som den här funktionen någonsin har utfört under en enda körning.

Kommer alltid att vara 0 och köra frågor mot en minnesoptimerad tabell.
total_logical_reads (totalt logiska läsningar) bigint Totalt antal logiska läsningar som utförts av exekveringar av den här funktionen, sedan den kompilerades.

Kommer alltid att vara 0 när man kör frågor mot en minnesoptimerad tabell.
last_logical_reads bigint Antal logiska läsningar som utfördes senast funktionen kördes.

Kommer alltid att vara 0 vid förfrågningar mot en minnesoptimerad tabell.
min_logical_reads bigint Minsta antal logiska läsningar som den här funktionen någonsin har utfört under en enda körning.

Kommer alltid att vara 0 när man frågar efter en minnesoptimerad tabell.
max_logical_reads bigint Maximalt antal logiska läsningar som den här funktionen någonsin har utfört under en enda körning.

Kommer alltid att vara 0 när man frågar en minnesoptimerad tabell.
total_elapsed_time bigint Total förfluten tid, i mikrosekunder, för avslutade exekveringar av den här funktionen.
senaste_förfluten_tid bigint Förfluten tid i mikrosekunder för den senaste slutförda körningen av den här funktionen.
min_elapsed_time bigint Minsta möjliga förflutna tid, i mikrosekunder, för varje slutförd exekvering av den här funktionen.
max_tidsmängd bigint Maximal förfluten tid, i mikrosekunder, för en slutförd körning av den här funktionen.
total_page_server_reads bigint Totalt antal lästa sidor från servern som har gjorts av exekveringar av den här funktionen sedan den kompilerades.

Gäller för: Hyperskala för Azure SQL Database.
last_page_server_reads bigint Antal sidserverläsningar som utfördes senast funktionen kördes.

Gäller för: Hyperskala för Azure SQL Database.
min_page_server_reads bigint Minsta antal sidserverläsningar som den här funktionen någonsin har utfört under en enda körning.

Gäller för: Hyperskala för Azure SQL Database.
max_page_server_reads bigint Maximalt antal sidserverläsningar som den här funktionen någonsin har utfört under en enda körning.

Gäller för: Hyperskala för Azure SQL Database.

Permissions

På SQL Server och SQL Managed Instance kräver VIEW SERVER STATE behörighet.

I SQL Database Grundläggande, S0och S1 tjänstmål och för databaser i elastiska pooler, serveradministratör konto, Microsoft Entra-administratör konto eller medlemskap i ##MS_ServerStateReader##serverrollen krävs. För alla andra SQL Database-tjänstmål krävs antingen VIEW DATABASE STATE behörighet för databasen eller medlemskap i ##MS_ServerStateReader## serverrollen.

Behörigheter för SQL Server 2022 och senare

Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.

Examples

I följande exempel returneras information om de tio främsta funktionerna som identifieras med genomsnittlig förfluten tid.

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;  

Se även

Körningsrelaterade vyer och funktioner för dynamisk hantering (Transact-SQL)
sys.dm_exec_sql_text (Transact-SQL)
sys.dm_exec_query_stats (Transact-SQL)

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