Delen via


sys.dm_exec_function_stats (Transact-SQL)

Van toepassing op: SQL Server 2016 (13.x) en latere versies van Azure SQL DatabaseAzure SQL Managed Instance

Retourneert statistische prestatiestatistieken voor functies in de cache. De weergave retourneert één rij voor elk functieplan in de cache en de levensduur van de rij is zolang de functie in de cache blijft. Wanneer een functie uit de cache wordt verwijderd, wordt de bijbehorende rij uit deze weergave verwijderd. Op dat moment wordt er een SQL-tracerings gebeurtenis voor prestatiestatistieken gegenereerd die vergelijkbaar is met sys.dm_exec_query_stats. Retourneert informatie over scalaire functies, waaronder in-memory functies en CLR scalaire functies. Retourneert geen informatie over tabelwaardefuncties en over scalaire functies die zijn inlined met Scalar UDF Inlining.

In Azure SQL Database kunnen dynamische beheerweergaven geen informatie weergeven die van invloed is op databaseinsluiting of informatie weergeven over andere databases waartoe de gebruiker toegang heeft. Om te voorkomen dat deze informatie zichtbaar wordt gemaakt, wordt elke rij met gegevens die geen deel uitmaken van de verbonden tenant uitgefilterd.

Opmerking

De resultaten van sys.dm_exec_function_stats kunnen per uitvoering variëren, omdat de gegevens alleen voltooide query's weerspiegelen en niet de gegevens die nog in de vlucht zijn.

Kolomnaam Gegevenstype Description
database_id int Database-id waarin de functie zich bevindt.

In Azure SQL Database zijn de waarden uniek binnen één database of een elastische pool, maar niet binnen een logische server.
object_id int Objectidentificatienummer van de functie.
type char(2) Type van het object: FN = Scalaire waardefuncties
type_desc nvarchar(60) Beschrijving van het objecttype: SQL_SCALAR_FUNCTION
sql_handle varbinary(64) Dit kan worden gebruikt om te correleren met query's in sys.dm_exec_query_stats die vanuit deze functie zijn uitgevoerd.
plan_handle varbinary(64) Identificator voor het in-memory plan. Deze id is tijdelijk en blijft alleen constant terwijl het plan in de cache blijft. Deze waarde kan worden gebruikt met de sys.dm_exec_cached_plans dynamische beheerweergave.

Wordt altijd 0x000 wanneer een systeemeigen gecompileerde functie een tabel opvraagt die is geoptimaliseerd voor geheugen.
gecachede_tijd datetime Tijdstip waarop de functie is toegevoegd aan de cache.
laatste_uitvoertijd datetime De laatste keer waarop de functie is uitgevoerd.
execution_count bigint Aantal keren dat de functie is uitgevoerd sinds deze voor het laatst is gecompileerd.
total_worker_time bigint Totale hoeveelheid CPU-tijd, in microseconden, die is verbruikt door uitvoeringen van deze functie sinds deze is gecompileerd.

Voor systeemeigen gecompileerde functies is total_worker_time mogelijk niet nauwkeurig als veel uitvoeringen minder dan 1 milliseconden duren.
laatste_werknemerstijd bigint CPU-tijd, in microseconden, die de laatste keer dat de functie werd uitgevoerd, werd verbruikt. 1
min_worker_time bigint Minimale CPU-tijd, in microseconden, die deze functie ooit heeft verbruikt tijdens één uitvoering. 1
max_worker_time bigint Maximale CPU-tijd, in microseconden, die deze functie ooit heeft verbruikt tijdens één uitvoering. 1
total_physical_reads bigint Totaal aantal fysieke leesbewerkingen uitgevoerd door uitvoeringen van deze functie sinds deze is gecompileerd.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
last_physical_reads bigint Het aantal fysieke leesbewerkingen dat de laatste keer is gedaan dat de functie werd uitgevoerd.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
min_physical_reads bigint Minimaal aantal fysieke leesbewerkingen dat deze functie ooit heeft uitgevoerd tijdens één uitvoering.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
max_physical_reads bigint Maximum aantal fysieke leesbewerkingen dat deze functie ooit heeft uitgevoerd tijdens één uitvoering.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
total_logical_writes bigint Totaal aantal logische schrijfbewerkingen uitgevoerd door uitvoeringen van deze functie sinds deze is gecompileerd.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
laatste_logische_schrijvingen bigint Het aantal bufferpoolpagina's dat de laatste keer dat het plan werd uitgevoerd, vervuild was. Als een pagina al vuil (gewijzigd) is, worden er geen schrijfbewerkingen geteld.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
min_logical_writes bigint Minimaal aantal logische schrijfbewerkingen dat deze functie ooit heeft uitgevoerd tijdens één uitvoering.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
max_logical_writes bigint Maximum aantal logische schrijfbewerkingen dat deze functie ooit heeft uitgevoerd tijdens één uitvoering.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
total_logical_reads bigint Totaal aantal logische leesbewerkingen uitgevoerd door uitvoeringen van deze functie sinds deze is gecompileerd.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
last_logical_reads bigint Het aantal logische leesbewerkingen dat de laatste keer is uitgevoerd wanneer de functie werd aangeroepen.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
min_logical_reads bigint Minimaal aantal logische leesbewerkingen dat deze functie ooit heeft uitgevoerd tijdens één uitvoering.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
max_logical_reads bigint Maximum aantal logische leesbewerkingen dat deze functie ooit heeft uitgevoerd tijdens één uitvoering.

Zal altijd 0 query's uitvoeren op een tabel die is geoptimaliseerd voor geheugen.
total_elapsed_time bigint Totale verstreken tijd, in microseconden, voor voltooide uitvoeringen van deze functie.
laatste_verstreken_tijd bigint Verstreken tijd, in microseconden, voor de laatst voltooide uitvoering van deze functie.
min_elapsed_time bigint Minimale verstreken tijd, in microseconden, voor elke voltooide uitvoering van deze functie.
max_verstreken_tijd bigint Maximale verstreken tijd, in microseconden, voor elke voltooide uitvoering van deze functie.
total_page_server_reads bigint Totaal aantal paginaserverleesbewerkingen uitgevoerd door uitvoeringen van deze functie sinds deze is gecompileerd.

Van toepassing op: Azure SQL Database Hyperscale.
last_page_server_reads bigint Aantal paginaserverleesbewerkingen uitgevoerd de laatste keer dat de functie is uitgevoerd.

Van toepassing op: Azure SQL Database Hyperscale.
min_page_server_reads bigint Minimaal aantal paginaservers leest dat deze functie ooit is uitgevoerd tijdens één uitvoering.

Van toepassing op: Azure SQL Database Hyperscale.
max_page_server_reads bigint Het maximum aantal paginaservers leest dat deze functie ooit is uitgevoerd tijdens één uitvoering.

Van toepassing op: Azure SQL Database Hyperscale.

Permissions

Voor SQL Server en SQL Managed Instance is een machtiging vereist VIEW SERVER STATE .

Voor servicedoelstellingen van SQL Database Basic, S0 en S1 en voor databases in elastische pools is het serverbeheerdersaccount , het Microsoft Entra-beheerdersaccount of het lidmaatschap van de ##MS_ServerStateReader##serverrol vereist. Voor alle andere SQL Database-servicedoelstellingen is de VIEW DATABASE STATE machtiging voor de database of het lidmaatschap van de ##MS_ServerStateReader## serverfunctie vereist.

Machtigingen voor SQL Server 2022 en hoger

Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.

Voorbeelden

In het volgende voorbeeld wordt informatie geretourneerd over de tien belangrijkste functies, geïdentificeerd op basis van de gemiddelde verstreken tijd.

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;  

Zie ook

uitvoeringsgerelateerde dynamische beheerweergaven en -functies (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)