Freigeben über


sys.dm_exec_function_stats (Transact-SQL)

Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-Datenbank Azure SQL Managed Instance

Gibt die Aggregatleistungsstatistik für zwischengespeicherte Funktionen zurück. Diese Sicht gibt eine Zeile für jeden Plan der zwischengespeicherten Funktion zurück, und die Lebensdauer der Zeile entspricht der Verweildauer der Funktion im Cache. Bei Entfernung einer Funktion aus dem Cache wird die entsprechende Zeile aus dieser Sicht gelöscht. Zu diesem Zeitpunkt wird ein Leistungsstatistik-SQL-Ablaufverfolgungsereignis ausgelöst, das sys.dm_exec_query_statsentspricht. Gibt Informationen zu Skalarfunktionen zurück, einschließlich Speicherfunktionen und CLR-Skalarfunktionen. Gibt keine Informationen zu Tabellenwertfunktionen und zu Skalarfunktionen zurück, die mit Skalares UDF-Inlining eingebettet sind.

In Azure SQL-Datenbank können dynamische Verwaltungssichten keine Informationen verfügbar machen, die sich auf den Datenbankeinschluss auswirken würden oder die sich auf andere Datenbanken beziehen, auf die der Benutzer Zugriff hat. Um zu vermeiden, dass diese Informationen verfügbar gemacht werden, wird jede Zeile mit Daten, die zum verbundenen Mandanten gehören, herausgefiltert.

Hinweis

Die Ergebnisse von sys.dm_exec_function_stats können bei jeder Ausführung variieren, da die Daten nur abgeschlossene Abfragen widerspiegeln, nicht aber solche, die noch im Gange sind.

Spaltenname Datentyp Beschreibung
database_id int ID der Datenbank, in der sich die Funktion befindet.

In Azure SQL-Datenbank sind die Werte innerhalb einer einzelnen Datenbank oder eines Pools für elastische Datenbanken eindeutig, aber nicht innerhalb eines logischen Servers.
object_id int Objekt-ID der Funktion.
type char(2) Typ des Objekts: FN = Skalarwertfunktionen
type_desc nvarchar(60) Beschreibung des Objekttyps: SQL_SCALAR_FUNCTION
sql_handle varbinary(64) Kann zur Korrelation mit Abfragen in sys.dm_exec_query_stats verwendet werden, die aus dieser Funktion ausgeführt wurden.
plan_handle varbinary(64) Bezeichner für den speicherinternen Plan. Dieser Bezeichner ist vorübergehend und bleibt nur für die Dauer der Speicherung des Plans im Cache konstant. Dieser Wert kann mit der dynamischen Verwaltungssicht sys.dm_exec_cached_plans verwendet werden.

Ist immer 0x000, wenn eine systemintern kompilierte Funktion eine speicheroptimierte Tabelle abfragt.
cached_time datetime Der Zeitpunkt, zu dem die Funktion dem Cache hinzugefügt wurde.
last_execution_time datetime Der Zeitpunkt, zu dem die Funktion zuletzt ausgeführt wurde.
execution_count bigint Die Anzahl von Funktionsausführungen seit der letzten Kompilierung.
total_worker_time bigint Die CPU-Gesamtzeit (in Mikrosekunden) für Ausführungen dieser Funktion seit der Kompilierung.

Wenn zahlreiche Ausführungen weniger als 1 Millisekunde dauern, wird total_worker_time bei nativ kompilierten Funktionen u.U. nicht exakt angegeben.
last_worker_time bigint CPU-Zeit (in Mikrosekunden) für die letzte Ausführung der Funktion. 1
min_worker_time bigint Bisherige minimale CPU-Zeit (in Mikrosekunden) für eine einzelne Ausführung dieser Funktion. 1
max_worker_time bigint Bisherige maximale CPU-Zeit (in Mikrosekunden) für eine einzelne Ausführung dieser Funktion. 1
total_physical_reads bigint Die Gesamtanzahl physischer Lesevorgänge für Ausführungen dieser Funktion seit der Kompilierung.

Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird.
last_physical_reads bigint Anzahl physischer Lesevorgänge bei der letzten Ausführung der Funktion.

Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird.
min_physical_reads bigint Die bisherige minimale Anzahl physischer Lesevorgänge für eine einzelne Ausführung dieser Funktion.

Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird.
max_physical_reads bigint Die bisherige maximale Anzahl physischer Lesevorgänge für eine einzelne Ausführung dieser Funktion.

Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird.
total_logical_writes bigint Die Gesamtanzahl logischer Schreibvorgänge für Ausführungen dieser Funktion seit der Kompilierung.

Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird.
last_logical_writes bigint Die Anzahl der Pufferpoolseiten, die seit der letzten Planausführung modifiziert wurden. Wenn eine Seite bereits modifiziert (geändert) wurde, werden keine Schreibvorgänge gezählt.

Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird.
min_logical_writes bigint Die bisherige minimale Anzahl logischer Schreibvorgänge für eine einzelne Ausführung dieser Funktion.

Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird.
max_logical_writes bigint Die bisherige maximale Anzahl logischer Schreibvorgänge für eine einzelne Ausführung dieser Funktion.

Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird.
total_logical_reads bigint Die Gesamtanzahl logischer Lesevorgänge für Ausführungen dieser Funktion seit der Kompilierung.

Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird.
last_logical_reads bigint Anzahl logischer Lesevorgänge bei der letzten Ausführung der Funktion.

Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird.
min_logical_reads bigint Die bisherige minimale Anzahl logischer Lesevorgänge für eine einzelne Ausführung dieser Funktion.

Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird.
max_logical_reads bigint Die bisherige maximale Anzahl logischer Lesevorgänge für eine einzelne Ausführung dieser Funktion.

Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird.
total_elapsed_time bigint Insgesamt verstrichene Zeit (in Mikrosekunden) für abgeschlossene Ausführungen dieser Funktion.
last_elapsed_time bigint Verstrichene Zeit (in Mikrosekunden) für die letzte abgeschlossene Ausführung dieser Funktion.
min_elapsed_time bigint Mindestens verstrichene Zeit (in Mikrosekunden) für eine beliebige abgeschlossene Ausführung dieser Funktion.
max_elapsed_time bigint Maximal verstrichene Zeit (in Mikrosekunden) für eine beliebige abgeschlossene Ausführung dieser Funktion.
total_page_server_reads bigint Die Gesamtanzahl der Page-Server-Lesevorgänge für Ausführungen dieser Funktion seit der Kompilierung.

Gilt für: Azure SQL-Datenbank Hyperscale.
last_page_server_reads bigint Anzahl der Page-Server-Lesevorgänge, die bei der letzten Ausführung der Funktion durchgeführt wurden.

Gilt für: Azure SQL-Datenbank Hyperscale.
min_page_server_reads bigint Mindestanzahl der Page-Server-Lesevorgänge, die diese Funktion jemals während einer einzigen Ausführung durchgeführt hat.

Gilt für: Azure SQL-Datenbank Hyperscale.
max_page_server_reads bigint Maximale Anzahl der Page-Server-Lesevorgänge, die diese Funktion jemals während einer einzigen Ausführung durchgeführt hat.

Gilt für: Azure SQL-Datenbank Hyperscale.

Berechtigungen

Für SQL Server und SQL Managed Instance ist die VIEW SERVER STATE-Berechtigung erforderlich.

Für die SQL-Datenbank-Ziele Basic, S0 und S1 sowie für Datenbanken in Pools für elastische Datenbanken ist das Konto des Serveradministrators oder des Microsoft Entra-Administratorkontos oder die Mitgliedschaft in der ##MS_ServerStateReader## Serverrolle erforderlich. Für alle anderen SQL-Datenbank-Dienstziele ist entweder die VIEW DATABASE STATE-Berechtigung für die Datenbank oder die Mitgliedschaft in der ##MS_ServerStateReader##-Serverrolle erforderlich.

Berechtigungen für SQL Server 2022 und höher

Erfordert die VIEW SERVER PERFORMANCE STATE-Berechtigung auf dem Server.

Beispiele

Das folgende Beispiel gibt Informationen zu den 10 Funktionen mit der höchsten durchschnittlich verstrichenen Zeit zurück.

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;  

Weitere Informationen

Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit der Ausführung (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)