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:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Database w Microsoft Fabric
Zwraca zagregowane statystyki wydajności procedur przechowywanych w pamięci podręcznej. Widok zwraca jeden wiersz dla każdego buforowanego planu procedur, a czas życia wiersza wynosi tak długo, jak procedura pozostaje w pamięci podręcznej. Gdy procedura przechowywana zostaje usunięta z pamięci podręcznej, odpowiadający jej wiersz jest usuwany w tym widoku. W tym czasie query_cache_removal_statistics wydarzenie jest podnoszone podobnie jak sys.dm_exec_query_stats dla SQL Server i Azure SQL Managed Instance.
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_procedure_stats mogą się różnić przy każdym wykonaniu, ponieważ dane odzwierciedlają jedynie ukończone zapytania, a nie te, które są jeszcze w trakcie.
Aby wywołać to z usługi Azure Synapse Analytics lub Analytics Platform System (PDW), użyj nazwy sys.dm_pdw_nodes_exec_procedure_stats. Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.
| Nazwa kolumny | Typ danych | Description |
|---|---|---|
| database_id | int | Identyfikator bazy danych, w którym znajduje się procedura przechowywana. 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 procedury przechowywanej. |
| type | char(2) | Typ obiektu: P = procedura przechowywana SQL PC = procedura składowana w asemblerze (CLR) X = Rozszerzona procedura przechowywana |
| type_desc | nvarchar(60) | Opis typu obiektu: SQL_STORED_PROCEDURE CLR_STORED_PROCEDURE EXTENDED_STORED_PROCEDURE |
| sql_handle | varbinary(64) | Może to być używane do korelacji z zapytaniami w sys.dm_exec_query_stats , które zostały wykonane w ramach tej procedury przechowywanej. |
| 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 procedura przechowywana zapyta tabelę zoptymalizowaną pod pamięć. |
| cached_time | datetime | Czas, w którym procedura przechowywana została dodana do pamięci podręcznej. |
| last_execution_time | datetime | Ostatni raz, gdy procedura zapisana została wykonana. |
| liczba_wykonań | bigint | Liczba wykonań procedury przechowywanej od jej ostatniego skompilowania. |
| total_worker_time | bigint | Całkowita ilość czasu CPU, wyrażona w mikrosekundach, zużywana na wykonanie tej procedury przechowywanej od momentu jej skompilowania. W przypadku natywnie kompilowanych procedur przechowywanych total_worker_time może nie być dokładne, jeśli wiele wykonań trwa mniej niż 1 milisekundę. |
| czas_ostatniego_pracownika | bigint | Czas CPU, wynoszony w mikrosekundach, zużywany podczas ostatniego wykonania procedury przechowywanej. 1 |
| min_worker_time | bigint | Minimalny czas CPU, wymierzony w mikrosekundy, jaki ta procedura przechowywana kiedykolwiek zużywała podczas jednego wykonywania. 1 |
| max_worker_time | bigint | Maksymalny czas CPU, wyliczany w mikrosekundy, jaki ta procedura przechowywana kiedykolwiek zużywała podczas jednego wykonywania. 1 |
| total_physical_reads (całkowita liczba fizycznych odczytów) | bigint | Łączna liczba fizycznych odczytów wykonanych przez wykonanie tej procedury przechowywanej od momentu jej kompilacji. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| ostatnie_odczyty_fizyczne | bigint | Liczba fizycznych odczytów wykonanych podczas ostatniego wykonania procedury przechowywanej. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| minimalne_fizyczne_odczyty | bigint | Minimalna liczba fizycznych odczytów, jaką ta procedura przechowywana kiedykolwiek wykonała podczas jednego wykonywania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| max_physical_reads | bigint | Maksymalna liczba fizycznych odczytów, jaką ta procedura przechowywana kiedykolwiek wykonała podczas jednego wykonywania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| total_logical_writes | bigint | Całkowita liczba logicznych zapisów wykonanych przez wykonanie tej procedury przechowywanej od momentu jej skompilowania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| last_logical_writes | bigint | Liczba stron buforowych pul zabrudzonych przy ostatnim wdrożeniu 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, jaką ta procedura przechowywana kiedykolwiek wykonała podczas jednego wykonywania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| max_logical_writes | bigint | Maksymalna liczba zapisów logicznych, jaką ta procedura przechowywana kiedykolwiek wykonała podczas jednego wykonywania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| total_logical_reads | bigint | Całkowita liczba odczytów logicznych wykonanych przez wykonanie tej procedury przechowywanej od momentu 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 wykonania procedury przechowywanej. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| min_logical_reads | bigint | Minimalna liczba odczytów logicznych, jaką ta procedura przechowywana kiedykolwiek wykonała podczas jednego wykonywania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| max_logical_reads | bigint | Maksymalna liczba odczytów logicznych, jaką ta procedura przechowywana kiedykolwiek wykonała podczas jednego wykonania. Wynik zawsze wyniesie 0 przy zapytaniach w tabeli zoptymalizowanej pod kątem pamięci. |
| total_elapsed_time | bigint | Całkowity czas upłynięty w mikrosekundach na zakończenie wykonania tej procedury przechowywanej. |
| last_elapsed_time | bigint | Czas upłynący, w mikrosekundach, dla ostatnio zakończonego wykonania tej procedury przechowywanej. |
| min_czas_upływu | bigint | Minimalny czas upływający w mikrosekundach dla zakończenia wykonania tej procedury przechowywanej. |
| max_elapsed_time (maksymalny czas upłynięty) | bigint | Maksymalny czas upływający w mikrosekundach dla zakończenia wykonania tej procedury przechowywanej. |
| total_spills | bigint | Całkowita liczba stron rozlanych przez wykonanie tej procedury przechowywanej od momentu jej kompilacji. Dotyczy do: Zaczynając od SQL Server 2017 (14.x) CU3 |
| last_spills | bigint | Liczba stron wylanych podczas ostatniego wykonania procedury przechowywanej. Dotyczy do: Zaczynając od SQL Server 2017 (14.x) CU3 |
| min_spills | bigint | Minimalna liczba stron, jaką ta procedura przechowywana kiedykolwiek wylała podczas jednego wykonania. Dotyczy do: Zaczynając od SQL Server 2017 (14.x) CU3 |
| max_spills | bigint | Maksymalna liczba stron, jaką ta procedura przechowywana kiedykolwiek wylała podczas jednego wykonania. Dotyczy do: Zaczynając od SQL Server 2017 (14.x) CU3 |
| pdw_node_id | int | Identyfikator węzła, w ramach którego znajduje się ta dystrybucja. Dotyczy do: Azure Synapse Analytics, Analytics Platform System (PDW) |
| total_page_server_reads | bigint | Całkowita liczba odczytów serwera stron wykonanych przez wykonanie tej procedury przechowywanej od momentu jej kompilacji. Dotyczy: Hiperskala usługi Azure SQL Database |
| ostatnie_odczyty_serwera_stron | bigint | Liczba odczytów serwera stron wykonanych podczas ostatniego wykonania procedury przechowywanej. Dotyczy: Hiperskala usługi Azure SQL Database |
| min_page_server_reads | bigint | Minimalna liczba odczytów serwera stron, jaką ta przechowywana procedura kiedykolwiek wykonała podczas jednego wykonywania. Dotyczy: Hiperskala usługi Azure SQL Database |
| max_page_server_reads | bigint | Maksymalna liczba odczytów serwera stron, jaką ta procedura przechowywana kiedykolwiek wykonała podczas jednego wykonywania. Dotyczy: Hiperskala usługi Azure SQL Database |
1 Dla natywnie kompilowanych procedur przechowywanych, gdy włączona jest zbieranie statystyk, czas pracy jest pobierany w milisekundach. Jeśli zapytanie wykona się w mniej niż milisekundę, wartość wyniesie 0.
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.
Uwagi
Statystyki w widoku są aktualizowane po zakończeniu wykonania procedury przechowywanej.
Przykłady
Poniższy przykład zwraca informacje o dziesięciu najważniejszych procedurach przechowywanych zidentyfikowanych przez średni upływ czasu.
SELECT TOP 10 d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'proc 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_procedure_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_plan (Transact-SQL)
sys.dm_exec_query_stats (Transact-SQL)
sys.dm_exec_trigger_stats (Transact-SQL)
sys.dm_exec_cached_plans (Transact-SQL)