Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do: SQL Server 2016 (13.x) i nowsze wersje
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Zwraca zagregowane statystyki wydajności dla funkcji buforowanych. Widok zwraca jeden wiersz dla każdego buforowanego planu funkcji, a okres istnienia wiersza jest tak długo, jak funkcja pozostaje buforowana. Gdy funkcja zostanie usunięta z pamięci podręcznej, odpowiedni wiersz zostanie wyeliminowany z tego widoku. W tym czasie uruchamiane jest zdarzenie śledzenia SQL dotyczące statystyk wydajności, podobnie jak sys.dm_exec_query_stats. Zwraca informacje o funkcjach skalarnych, w tym o funkcjach w pamięci i funkcjach skalarnych CLR. Nie zwraca informacji o funkcjach wartości tabeli i o funkcjach skalarnych, które są podkreślone za pomocą wbudowanej funkcji UDF skalarnej.
W usłudze Azure SQL Database dynamiczne widoki zarządzania nie mogą ujawniać informacji, które mają wpływ na zawieranie bazy danych lub uwidacznianie informacji o innych bazach danych, do których użytkownik ma dostęp. Aby uniknąć ujawniania tych informacji, każdy wiersz zawierający dane, które nie należą do połączonej dzierżawy, jest filtrowany.
Uwaga / Notatka
Wyniki sys.dm_exec_function_stats mogą się różnić w zależności od wykonania, ponieważ dane odzwierciedlają tylko ukończone zapytania, a nie te nadal w locie.
| Nazwa kolumny | Typ danych | Description |
|---|---|---|
| database_id | int | Identyfikator bazy danych, w której znajduje się funkcja. W usłudze Azure SQL Database wartości są unikatowe w ramach pojedynczej bazy danych lub elastycznej puli, ale nie w obrębie serwera logicznego. |
| object_id | int | Numer identyfikacyjny obiektu funkcji. |
| type | char(2) | Typ obiektu: FN = funkcje wartości skalarnych |
| type_desc | nvarchar(60) | Opis typu obiektu: SQL_SCALAR_FUNCTION |
| sql_handle | varbinary(64) | Może to służyć do korelowania z zapytaniami w sys.dm_exec_query_stats , które zostały wykonane z tej funkcji. |
| plan_handle | varbinary(64) | Identyfikator planu w pamięci. Ten identyfikator jest przejściowy i pozostaje stały tylko wtedy, gdy plan pozostaje w pamięci podręcznej. Ta wartość może być używana z dynamicznym widokiem zarządzania sys.dm_exec_cached_plans. Zawsze będzie 0x000, gdy natywnie skompilowana funkcja wysyła zapytanie do tabeli zoptymalizowanej pod kątem pamięci. |
| cached_time | datetime | Czas dodania funkcji do pamięci podręcznej. |
| last_execution_time | datetime | Czas ostatniego wykonania funkcji. |
| liczba_wykonań | bigint | Liczba wykonanych funkcji od czasu ostatniego skompilowania. |
| total_worker_time | bigint | Łączna ilość czasu procesora CPU w mikrosekundach, która została zużyta przez wykonania tej funkcji od czasu, gdy została skompilowana. W przypadku natywnie skompilowanych funkcji total_worker_time może nie być dokładne, jeśli wiele wykonań trwa mniej niż 1 milisekund. |
| czas_ostatniego_pracownika | bigint | Czas CPU, w mikrosekundach, który został zużyty przy ostatnim wykonywaniu funkcji. 1 |
| min_worker_time | bigint | Minimalny czas procesora CPU w mikrosekundach, który ta funkcja kiedykolwiek zużyła podczas pojedynczego wykonywania. 1 |
| max_worker_time | bigint | Maksymalny czas procesora CPU w mikrosekundach, który kiedykolwiek zużywał ta funkcja podczas pojedynczego wykonywania. 1 |
| total_physical_reads (całkowita liczba fizycznych odczytów) | bigint | Łączna liczba odczytów fizycznych wykonanych przez tę funkcję od momentu jej kompilacji. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| ostatnie_odczyty_fizyczne | bigint | Liczba odczytów fizycznych wykonanych podczas ostatniego wykonania funkcji. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| minimalne_fizyczne_odczyty | bigint | Minimalna liczba odczytów fizycznych, które kiedykolwiek wykonała ta funkcja podczas pojedynczego wykonywania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| max_physical_reads | bigint | Maksymalna liczba odczytów fizycznych, które kiedykolwiek wykonała ta funkcja podczas pojedynczego wykonywania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| total_logical_writes | bigint | Łączna liczba zapisów logicznych wykonywanych przez uruchomienia tej funkcji od chwili jej skompilowania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| last_logical_writes | bigint | Liczba stron puli buforowej zabrudzonych podczas ostatniego wykonania planu. Jeśli strona jest już zanieczyszczona (zmodyfikowana), nie są zliczane żadne zapisy. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| min_logical_writes | bigint | Minimalna liczba zapisów logicznych, które kiedykolwiek wykonała ta funkcja podczas pojedynczego wykonywania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| max_logical_writes | bigint | Maksymalna liczba zapisów logicznych, które kiedykolwiek wykonała ta funkcja podczas pojedynczego wykonywania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| total_logical_reads | bigint | Łączna liczba odczytów logicznych wykonanych przez uruchomienia tej funkcji od czasu jej skompilowania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| last_logical_reads | bigint | Liczba odczytów logicznych wykonanych podczas ostatniego wykonywania funkcji. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| min_logical_reads | bigint | Minimalna liczba odczytów logicznych, które kiedykolwiek wykonała ta funkcja podczas pojedynczego wykonywania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| max_logical_reads | bigint | Maksymalna liczba odczytów logicznych, które kiedykolwiek wykonała ta funkcja podczas pojedynczego wykonywania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| total_elapsed_time | bigint | Całkowity czas, który upłynął w mikrosekundach dla zakończonych wykonań tej funkcji. |
| last_elapsed_time | bigint | Czas, który upłynął, w mikrosekundach, dla ostatnio ukończonego wykonywania tej funkcji. |
| min_czas_upływu | bigint | Minimalny czas, który upłynął, w mikrosekundach, dla każdego zakończonego wykonania tej funkcji. |
| max_elapsed_time (maksymalny czas upłynięty) | bigint | Maksymalny czas, który upłynął, w mikrosekundach, dla dowolnego ukończonego wykonania tej funkcji. |
| total_page_server_reads | bigint | Łączna liczba odczytów serwera stron wykonanych przez tę funkcję od czasu, gdy została skompilowana. Dotyczy: Hiperskala usługi Azure SQL Database. |
| ostatnie_odczyty_serwera_stron | bigint | Liczba odczytów na serwerze stron dokonanych podczas ostatniego wykonania funkcji. Dotyczy: Hiperskala usługi Azure SQL Database. |
| min_page_server_reads | bigint | Minimalna liczba odczytów z serwera stron, które ta funkcja kiedykolwiek wykonała podczas pojedynczego wykonania. Dotyczy: Hiperskala usługi Azure SQL Database. |
| max_page_server_reads | bigint | Maksymalna liczba odczytów serwera stron, które ta funkcja kiedykolwiek wykonała podczas pojedynczego uruchomienia. Dotyczy: Hiperskala usługi Azure SQL Database. |
Permissions
W programie SQL Server i usłudze SQL Managed Instance wymagane jest VIEW SERVER STATE uprawnienie.
W przypadku celów usługi SQL Database Basic, S0 i S1 oraz baz danych w elastycznych pulach wymagane jest konto administratora serwera , konto administratora firmy Microsoft Entra lub członkostwo w ##MS_ServerStateReader##roli serwera . We wszystkich innych celach usługi SQL Database wymagane VIEW DATABASE STATE jest uprawnienie do bazy danych lub członkostwo w ##MS_ServerStateReader## roli serwera.
Uprawnienia dla programu SQL Server 2022 i nowszych
Wymaga uprawnienia WYŚWIETL STAN WYDAJNOŚCI SERWERA na serwerze.
Przykłady
Poniższy przykład zwraca informacje o dziesięciu najlepszych funkcjach zidentyfikowanych na podstawie średniego czasu wykonania.
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;
Zobacz też
Dynamiczne widoki zarządzania i funkcje związane z wykonywaniem (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)