sys.dm_exec_function_stats (Transact-SQL)
Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-DatenbankAzure SQL Managed Instance
Gibt aggregierte Leistungsstatistiken für zwischengespeicherte Funktionen zurück. Die Ansicht gibt eine Zeile für jeden zwischengespeicherten Funktionsplan zurück, und die Lebensdauer der Zeile ist solange, wie die Funktion neu Standard zwischengespeichert ist. Wenn eine Funktion aus dem Cache entfernt wird, wird die entsprechende Zeile aus dieser Ansicht entfernt. 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 skalaren Funktionen zurück, die mit Scalar UDF Inlining inlined sind.
In Azure SQL-Datenbank können dynamische Verwaltungsansichten keine Informationen verfügbar machen, die sich auf das Eindämmen von Datenbanken auswirken oder Informationen zu anderen Datenbanken verfügbar machen, auf die der Benutzer zugreifen kann. Um diese Informationen nicht verfügbar zu machen, wird jede Zeile mit Daten, die nicht zum verbundenen Mandanten gehören, herausgefiltert.
Hinweis
Die Ergebnisse von sys.dm_exec_function_stats können je nach Ausführung variieren, da die Daten nur abgeschlossene Abfragen und keine abfragen, die noch im Test-Flight enthalten sind.
Spaltenname | Datentyp | Beschreibung |
---|---|---|
database_id | int | Datenbank-ID, in der sich die Funktion befindet. In Azure SQL-Datenbank sind die Werte innerhalb einer einzelnen Datenbank oder eines elastischen Pools eindeutig, aber nicht innerhalb eines logischen Servers. |
object_id | int | Objektidentifikationsnummer der Funktion. |
type | char(2) | Typ des Objekts: FN = Skalare Wertfunktionen |
type_desc | nvarchar(60) | Beschreibung des Objekttyps: SQL_SCALAR_FUNCTION |
Sql_handle | varbinary(64) | Dies kann verwendet werden, um Abfragen in sys.dm_exec_query_stats zu korrelieren, die in 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. Wird immer 0x000, wenn eine systemeigene kompilierte Funktion eine speicheroptimierte Tabelle abfragt. |
cached_time | datetime | Zeit, zu der die Funktion dem Cache hinzugefügt wurde. |
last_execution_time | datetime | Letzter Zeitpunkt, zu dem die Funktion ausgeführt wurde. |
execution_count | bigint | Häufigkeit, mit der die Funktion seit der letzten Kompilierung ausgeführt wurde. |
total_worker_time | bigint | Die Gesamtdauer der CPU-Zeit in Mikrosekunden, die von Ausführungen dieser Funktion seit der Kompilierung verbraucht wurde. Bei systemeigenen kompilierten Funktionen ist total_worker_time möglicherweise nicht genau, wenn viele Ausführungen weniger als 1 Millisekunden dauern. |
last_worker_time | bigint | CPU-Zeit in Mikrosekunden, die beim letzten Ausführen der Funktion verbraucht wurde. 1 |
min_worker_time | bigint | Minimale CPU-Zeit in Mikrosekunden, die diese Funktion während einer einzigen Ausführung jemals verbraucht hat. 1 |
max_worker_time | bigint | Maximale CPU-Zeit in Mikrosekunden, die diese Funktion während einer einzelnen Ausführung jemals verbraucht hat. 1 |
total_physical_reads | bigint | Die Gesamtzahl der physischen Lesevorgänge, die von Ausführungen dieser Funktion seit der Kompilierung ausgeführt wurden. Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird. |
last_physical_reads | bigint | Die Anzahl der physischen Lesevorgänge, die beim letzten Ausführen der Funktion ausgeführt wurden. Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird. |
min_physical_reads | bigint | Minimale Anzahl physischer Lesevorgänge, die diese Funktion während einer einzelnen Ausführung jemals ausgeführt hat. Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird. |
max_physical_reads | bigint | Maximale Anzahl physischer Lesevorgänge, die diese Funktion während einer einzelnen Ausführung jemals ausgeführt hat. Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird. |
total_logical_writes | bigint | Die Gesamtzahl der logischen Schreibvorgänge, die von Ausführungen dieser Funktion seit der Kompilierung ausgeführt wurden. 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 | Minimale Anzahl logischer Schreibvorgänge, die diese Funktion während einer einzelnen Ausführung jemals ausgeführt hat. Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird. |
max_logical_writes | bigint | Maximale Anzahl logischer Schreibvorgänge, die diese Funktion während einer einzelnen Ausführung jemals ausgeführt hat. Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird. |
total_logical_reads | bigint | Die Gesamtzahl der logischen Lesevorgänge, die von Ausführungen dieser Funktion seit der Kompilierung ausgeführt wurden. Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird. |
last_logical_reads | bigint | Die Anzahl der logischen Lesevorgänge, die beim letzten Ausführen der Funktion ausgeführt wurden. Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird. |
min_logical_reads | bigint | Minimale Anzahl logischer Lesevorgänge, die diese Funktion während einer einzelnen Ausführung jemals ausgeführt hat. Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird. |
max_logical_reads | bigint | Maximale Anzahl logischer Lesevorgänge, die diese Funktion während einer einzelnen Ausführung jemals ausgeführt hat. Ist immer 0, wenn eine speicheroptimierte Tabelle abgefragt wird. |
total_elapsed_time | bigint | Gesamtverstrichene Zeit in Mikrosekunden für abgeschlossene Ausführung dieser Funktion. |
last_elapsed_time | bigint | Verstrichene Zeit in Mikrosekunden für die zuletzt abgeschlossene Ausführung dieser Funktion. |
min_elapsed_time | bigint | Mindestens verstrichene Zeit in Mikrosekunden für jede abgeschlossene Ausführung dieser Funktion. |
max_elapsed_time | bigint | Maximale verstrichene Zeit in Mikrosekunden für jede abgeschlossene Ausführung dieser Funktion. |
total_page_server_reads | bigint | Die Gesamtzahl der Seitenserverlesevorgänge, die von Ausführungen dieser Funktion seit der Kompilierung ausgeführt wurden. Gilt für: Azure SQL-Datenbank Hyperscale. |
last_page_server_reads | bigint | Die Anzahl der Seitenserverlesungen, die beim letzten Ausführen der Funktion ausgeführt wurden. Gilt für: Azure SQL-Datenbank Hyperscale. |
min_page_server_reads | bigint | Die Minimale Anzahl von Seitenservern liest, dass diese Funktion während einer einzelnen Ausführung jemals ausgeführt wurde. Gilt für: Azure SQL-Datenbank Hyperscale. |
max_page_server_reads | bigint | Die maximale Anzahl von Seitenservern liest, dass diese Funktion während einer einzelnen Ausführung jemals ausgeführt wurde. 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 SQL-Datenbank Standard-, S0- und S1-Dienstziele sowie für Datenbanken in elastischen Pools ist das Serveradministratorkonto, das Microsoft Entra-Administratorkonto 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
Im folgenden Beispiel werden Informationen zu den zehn wichtigsten Funktionen zurückgegeben, die durchschnittliche verstrichene Zeit identifiziert werden.
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)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für