Udostępnij za pomocą


sys.dm_exec_procedure_stats (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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)