sys.dm_exec_query_stats (Transact-SQL)
Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
Zwraca zagregowane statystyki wydajności dla buforowanych planów zapytań w programie SQL Server. Widok zawiera jeden wiersz na instrukcję zapytania w ramach buforowanego planu, a okres istnienia wierszy jest powiązany z samym planem. Gdy plan zostanie usunięty z pamięci podręcznej, odpowiednie wiersze zostaną wyeliminowane z tego widoku.
Wyniki sys.dm_exec_query_stats
mogą się różnić w zależności od wykonania, ponieważ dane odzwierciedlają tylko ukończone zapytania, a nie te nadal w locie.
Aby wywołać ten dynamiczny widok zarządzania z dedykowanej puli SQL w usłudze Azure Synapse Analytics lub Analytics Platform System (PDW), użyj nazwy sys.dm_pdw_nodes_exec_query_stats
. W przypadku bezserwerowej puli SQL użyj sys.dm_exec_query_stats
.
Nazwa kolumny | Typ danych | Opis |
---|---|---|
sql_handle |
|
Token, który jednoznacznie identyfikuje partię lub procedurę składowaną, której częścią jest zapytanie.sql_handle , wraz z statement_start_offset i statement_end_offset , może służyć do pobierania tekstu SQL zapytania przez wywołanie funkcji dynamicznego zarządzania sys.dm_exec_sql_text . |
statement_start_offset |
Wskazuje, że w bajtach, począwszy od 0, pozycja początkowa zapytania, które wiersz opisuje w tekście wsadu lub utrwalonego obiektu. | |
statement_end_offset |
Wskazuje, że w bajtach, począwszy od 0, pozycja końcowa zapytania, które wiersz opisuje w tekście wsadowego lub utrwalonego obiektu. W przypadku wersji wcześniejszych niż SQL Server 2014 (12.x) wartość -1 wskazuje koniec partii. Komentarze końcowe nie są już uwzględniane. | |
plan_generation_num |
bigint | Numer sekwencji, który może służyć do rozróżniania wystąpień planów po ponownym skompilaniu. |
plan_handle |
|
Token, który jednoznacznie identyfikuje plan wykonywania zapytania dla partii, która została wykonana, a jego plan znajduje się w pamięci podręcznej planu lub jest obecnie wykonywany. Tę wartość można przekazać do funkcji zarządzania dynamicznego sys.dm_exec_query_plan w celu uzyskania planu zapytania. Zawsze 0x000 , gdy natywnie skompilowana procedura składowana wysyła zapytanie do tabeli zoptymalizowanej pod kątem pamięci. |
creation_time |
data/godzina | Czas, w którym plan został skompilowany. Czas jest rejestrowany w bieżącej strefy czasowej. |
last_execution_time |
data/godzina | Ostatni raz, w którym plan rozpoczął wykonywanie. Czas jest rejestrowany w bieżącej strefy czasowej. |
execution_count |
bigint | Ile razy plan został wykonany od czasu jego ostatniej kompilacji. |
total_worker_time |
bigint | Łączna ilość czasu procesora CPU zgłoszona w mikrosekundach (ale tylko w milisekundach), która została zużyta przez wykonania tego planu, ponieważ została skompilowana. W przypadku natywnie skompilowanych procedur składowanych total_worker_time może nie być dokładne, jeśli wiele wykonań trwa mniej niż 1 milisekund. |
last_worker_time |
bigint | Czas procesora CPU, zgłoszony w mikrosekundach (ale tylko dokładne do milisekund), który był używany podczas ostatniego wykonania planu. 1 |
min_worker_time |
bigint | Minimalny czas procesora CPU, zgłoszony w mikrosekundach (ale tylko dokładnych do milisekund), że ten plan kiedykolwiek zużywał podczas pojedynczego wykonania. 1 |
max_worker_time |
bigint | Maksymalny czas procesora CPU zgłaszany w mikrosekundach (ale tylko w milisekundach), który kiedykolwiek zużywał ten plan podczas pojedynczego wykonywania. 1 |
total_physical_reads |
bigint | Łączna liczba odczytów fizycznych wykonywanych przez wykonania tego planu, ponieważ została skompilowana. Zawsze 0 podczas wykonywania zapytań względem tabeli zoptymalizowanej pod kątem pamięci. |
last_physical_reads |
bigint | Liczba odczytów fizycznych wykonanych podczas ostatniego wykonania planu. Zawsze 0 podczas wykonywania zapytań względem tabeli zoptymalizowanej pod kątem pamięci. |
min_physical_reads |
bigint | Minimalna liczba odczytów fizycznych, które kiedykolwiek wykonał ten plan podczas pojedynczego wykonania. Zawsze 0 podczas wykonywania zapytań względem tabeli zoptymalizowanej pod kątem pamięci. |
max_physical_reads |
bigint | Maksymalna liczba odczytów fizycznych, które kiedykolwiek wykonał ten plan podczas pojedynczego wykonania. Zawsze 0 podczas wykonywania zapytań względem tabeli zoptymalizowanej pod kątem pamięci. |
total_logical_writes |
bigint | Łączna liczba zapisów logicznych wykonywanych przez wykonania tego planu, ponieważ została skompilowana. Zawsze 0 podczas wykonywania zapytań względem tabeli zoptymalizowanej pod kątem pamięci. |
last_logical_writes |
bigint | Liczba stron puli brudnych podczas ostatnio ukończonego wykonania planu. Po odczytaniu strony strona staje się brudna tylko przy pierwszej modyfikacji. Gdy strona stanie się brudna, ta liczba jest zwiększana. Kolejne modyfikacje już zanieczyszczonej strony nie wpływają na tę liczbę. Ta liczba zawsze 0 podczas wykonywania zapytań względem tabeli zoptymalizowanej pod kątem pamięci. |
min_logical_writes |
bigint | Minimalna liczba zapisów logicznych, które kiedykolwiek wykonał ten plan podczas pojedynczego wykonania. Zawsze 0 podczas wykonywania zapytań względem tabeli zoptymalizowanej pod kątem pamięci. |
max_logical_writes |
bigint | Maksymalna liczba zapisów logicznych, które kiedykolwiek wykonał ten plan podczas pojedynczego wykonywania. Zawsze 0 podczas wykonywania zapytań względem tabeli zoptymalizowanej pod kątem pamięci. |
total_logical_reads |
bigint | Łączna liczba odczytów logicznych wykonywanych przez wykonania tego planu, ponieważ została skompilowana. Zawsze 0 podczas wykonywania zapytań względem tabeli zoptymalizowanej pod kątem pamięci. |
last_logical_reads |
bigint | Liczba odczytów logicznych wykonanych podczas ostatniego wykonania planu. Zawsze 0 podczas wykonywania zapytań względem tabeli zoptymalizowanej pod kątem pamięci. |
min_logical_reads |
bigint | Minimalna liczba odczytów logicznych, które kiedykolwiek wykonał ten plan podczas pojedynczego wykonania. Zawsze 0 podczas wykonywania zapytań względem tabeli zoptymalizowanej pod kątem pamięci. |
max_logical_reads |
bigint | Maksymalna liczba odczytów logicznych, które kiedykolwiek wykonał ten plan podczas pojedynczego wykonania. Zawsze 0 podczas wykonywania zapytań względem tabeli zoptymalizowanej pod kątem pamięci. |
total_clr_time |
bigint | Czas, zgłoszony w mikrosekundach (ale tylko dokładnych do milisekund), używany wewnątrz obiektów środowiska uruchomieniowego języka wspólnego programu Microsoft .NET Framework (CLR) przez wykonania tego planu, ponieważ został skompilowany. Obiekty CLR mogą być procedurami składowanymi, funkcjami, wyzwalaczami, typami i agregacjami. |
last_clr_time |
bigint | Czas zgłoszony w mikrosekundach (ale tylko dokładnych do milisekund) używanych przez wykonanie wewnątrz obiektów CLR programu .NET Framework podczas ostatniego wykonania tego planu. Obiekty CLR mogą być procedurami składowanymi, funkcjami, wyzwalaczami, typami i agregacjami. |
min_clr_time |
bigint | Minimalny czas, zgłoszony w mikrosekundach (ale tylko dokładne do milisekund), że ten plan kiedykolwiek zużywał wewnątrz obiektów CLR programu .NET Framework podczas pojedynczego wykonywania. Obiekty CLR mogą być procedurami składowanymi, funkcjami, wyzwalaczami, typami i agregacjami. |
max_clr_time |
bigint | Maksymalny czas zgłaszany w mikrosekundach (ale tylko w milisekundach), że ten plan kiedykolwiek był używany w środowisku .NET Framework CLR podczas pojedynczego wykonywania. Obiekty CLR mogą być procedurami składowanymi, funkcjami, wyzwalaczami, typami i agregacjami. |
total_elapsed_time |
bigint | Łączny czas, który upłynął, zgłoszony w mikrosekundach (ale tylko dokładnych do milisekund), dla zakończonych wykonań tego planu. |
last_elapsed_time |
bigint | Czas, który upłynął, zgłoszony w mikrosekundach (ale tylko dokładnych do milisekund), dla ostatnio ukończonego wykonania tego planu. |
min_elapsed_time |
bigint | Minimalny czas, który upłynął, zgłoszony w mikrosekundach (ale tylko dokładnych do milisekund), dla dowolnego ukończonego wykonania tego planu. |
max_elapsed_time |
bigint | Maksymalny czas, który upłynął, zgłoszony w mikrosekundach (ale tylko dokładnych do milisekund), dla każdego ukończonego wykonania tego planu. |
query_hash |
|
Wartość skrótu binarnego obliczana dla zapytania i używana do identyfikowania zapytań z podobną logiką. Możesz użyć skrótu zapytania, aby określić zagregowane użycie zasobów dla zapytań, które różnią się tylko wartościami literału. |
query_plan_hash |
binary(8) | Wartość skrótu binarnego obliczona na planie wykonywania zapytania i używana do identyfikowania podobnych planów wykonywania zapytań. Możesz użyć skrótu planu zapytania, aby znaleźć skumulowany koszt zapytań z podobnymi planami wykonywania. Zawsze 0x000 , gdy natywnie skompilowana procedura składowana wysyła zapytanie do tabeli zoptymalizowanej pod kątem pamięci. |
total_rows |
bigint | Łączna liczba wierszy zwracanych przez zapytanie. Nie można mieć wartości null. Zawsze 0 , gdy natywnie skompilowana procedura składowana wysyła zapytanie do tabeli zoptymalizowanej pod kątem pamięci. |
last_rows |
bigint | Liczba wierszy zwracanych przez ostatnie wykonanie zapytania. Nie można mieć wartości null. Zawsze 0 , gdy natywnie skompilowana procedura składowana wysyła zapytanie do tabeli zoptymalizowanej pod kątem pamięci. |
min_rows |
bigint | Minimalna liczba wierszy, które kiedykolwiek zostały zwrócone przez zapytanie podczas jednego wykonania. Nie można mieć wartości null. Zawsze 0 , gdy natywnie skompilowana procedura składowana wysyła zapytanie do tabeli zoptymalizowanej pod kątem pamięci. |
max_rows |
bigint | Maksymalna liczba wierszy, które kiedykolwiek zostały zwrócone przez zapytanie podczas jednego wykonania. Nie można mieć wartości null. Zawsze 0 , gdy natywnie skompilowana procedura składowana wysyła zapytanie do tabeli zoptymalizowanej pod kątem pamięci. |
statement_sql_handle |
|
Dotyczy: SQL Server 2014 (12.x) i nowszych wersjach. Wypełnione wartościami innych niż NULL tylko wtedy, gdy magazyn zapytań jest włączony i zbiera statystyki dla tego konkretnego zapytania. |
statement_context_id |
bigint |
Dotyczy: SQL Server 2014 (12.x) i nowszych wersjach. Wypełnione wartościami innych niż NULL tylko wtedy, gdy magazyn zapytań jest włączony i zbiera statystyki dla tego konkretnego zapytania. |
total_dop |
bigint | Całkowita suma stopnia równoległości używanego przez ten plan, ponieważ został skompilowany. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
last_dop |
bigint | Stopień równoległości, gdy ten plan został wykonany ostatni raz. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
min_dop |
bigint | Minimalny stopień równoległości tego planu, jaki kiedykolwiek był używany podczas jednego wykonania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
max_dop |
bigint | Maksymalny stopień równoległości tego planu, jaki kiedykolwiek był używany podczas jednego wykonania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
total_grant_kb |
bigint | Całkowita ilość przydziału pamięci zarezerwowanej w bazie wiedzy, która została odebrana od czasu skompilowania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
last_grant_kb |
bigint | Ilość przydziału pamięci zarezerwowanej w kb podczas ostatniego wykonania tego planu. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
min_grant_kb |
bigint | Minimalna ilość przydziału pamięci zarezerwowanej w kb tego planu, jaką kiedykolwiek otrzymano podczas jednego wykonania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
max_grant_kb |
bigint | Maksymalna ilość przydziału pamięci zarezerwowanej w kb tego planu, jaką kiedykolwiek otrzymano podczas jednego wykonania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
total_used_grant_kb |
bigint | Całkowita ilość przydziału pamięci zarezerwowanej w bazie wiedzy użyta w tym planie, ponieważ została skompilowana. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
last_used_grant_kb |
bigint | Ilość używanej ilości przydziału pamięci w kb podczas ostatniego wykonania tego planu. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
min_used_grant_kb |
bigint | Minimalna ilość przydziału używanej pamięci w kb tego planu, która kiedykolwiek była używana podczas jednego wykonania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
max_used_grant_kb |
bigint | Maksymalna ilość przydziału używanej pamięci w bazie wiedzy, która kiedykolwiek była używana podczas jednego wykonania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
total_ideal_grant_kb |
bigint | Łączna ilość idealnego przydziału pamięci w bazie wiedzy szacowana od czasu skompilowania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
last_ideal_grant_kb |
bigint | Ilość idealnej ilości przydziału pamięci w kb podczas ostatniego wykonania tego planu. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
min_ideal_grant_kb |
bigint | Minimalna ilość idealnej ilości przydziału pamięci w bazie wiedzy, jaka kiedykolwiek oszacowano podczas jednego wykonania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
max_ideal_grant_kb |
bigint | Maksymalna ilość idealnej ilości przydziału pamięci w bazie wiedzy, jaką kiedykolwiek oszacowano podczas jednego wykonania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
total_reserved_threads |
bigint | Łączna suma zarezerwowanych wątków równoległych używanych przez ten plan od czasu skompilowania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
last_reserved_threads |
bigint | Liczba zarezerwowanych wątków równoległych podczas ostatniego wykonania tego planu. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
min_reserved_threads |
bigint | Minimalna liczba zarezerwowanych wątków równoległych, które kiedykolwiek były używane podczas jednego wykonywania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
max_reserved_threads |
bigint | Maksymalna liczba zarezerwowanych wątków równoległych, które kiedykolwiek były używane podczas jednego wykonywania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
total_used_threads |
bigint | Łączna suma używanych wątków równoległych, które kiedykolwiek były używane, ponieważ został skompilowany. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
last_used_threads |
bigint | Liczba używanych wątków równoległych podczas ostatniego wykonania tego planu. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
min_used_threads |
bigint | Minimalna liczba używanych wątków równoległych, które kiedykolwiek były używane podczas jednego wykonania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
max_used_threads |
bigint | Maksymalna liczba używanych wątków równoległych, które kiedykolwiek były używane podczas jednego wykonywania. Zawsze 0 na potrzeby wykonywania zapytań dotyczących tabeli zoptymalizowanej pod kątem pamięci.Dotyczy: SQL Server 2016 (13.x) i nowszych wersjach. |
total_columnstore_segment_reads |
bigint | Łączna suma segmentów magazynu kolumn odczytanych przez zapytanie. Nie można mieć wartości null. Dotyczy: począwszy od programu SQL Server 2016 (13.x) SP2 i programu SQL Server 2017 (14.x) CU3 |
last_columnstore_segment_reads |
bigint | Liczba segmentów magazynu kolumn odczytanych przez ostatnie wykonanie zapytania. Nie można mieć wartości null. Dotyczy: począwszy od programu SQL Server 2016 (13.x) SP2 i programu SQL Server 2017 (14.x) CU3 |
min_columnstore_segment_reads |
bigint | Minimalna liczba segmentów magazynu kolumn, które kiedykolwiek odczytane przez zapytanie podczas jednego wykonania. Nie można mieć wartości null. Dotyczy: począwszy od programu SQL Server 2016 (13.x) SP2 i programu SQL Server 2017 (14.x) CU3 |
max_columnstore_segment_reads |
bigint | Maksymalna liczba segmentów magazynu kolumn, które kiedykolwiek odczytane przez zapytanie podczas jednego wykonania. Nie można mieć wartości null. Dotyczy: począwszy od programu SQL Server 2016 (13.x) SP2 i programu SQL Server 2017 (14.x) CU3 |
total_columnstore_segment_skips |
bigint | Łączna suma segmentów magazynu kolumn pominiętych przez zapytanie. Nie można mieć wartości null. Dotyczy: począwszy od programu SQL Server 2016 (13.x) SP2 i programu SQL Server 2017 (14.x) CU3 |
last_columnstore_segment_skips |
bigint | Liczba segmentów magazynu kolumn pominiętych przez ostatnie wykonanie zapytania. Nie można mieć wartości null. Dotyczy: począwszy od programu SQL Server 2016 (13.x) SP2 i programu SQL Server 2017 (14.x) CU3 |
min_columnstore_segment_skips |
bigint | Minimalna liczba segmentów magazynu kolumn kiedykolwiek pomijana przez zapytanie podczas jednego wykonywania. Nie można mieć wartości null. Dotyczy: począwszy od programu SQL Server 2016 (13.x) SP2 i programu SQL Server 2017 (14.x) CU3 |
max_columnstore_segment_skips |
bigint | Maksymalna liczba segmentów magazynu kolumn kiedykolwiek pomijana przez zapytanie podczas jednego wykonywania. Nie można mieć wartości null. Dotyczy: począwszy od programu SQL Server 2016 (13.x) SP2 i programu SQL Server 2017 (14.x) CU3 |
total_spills |
bigint | Łączna liczba stron rozlanych przez wykonanie tego zapytania, ponieważ została skompilowana. Dotyczy: począwszy od programu SQL Server 2016 (13.x) SP2 i programu SQL Server 2017 (14.x) CU3 |
last_spills |
bigint | Liczba stron rozlała ostatni raz, gdy zapytanie zostało wykonane. Dotyczy: począwszy od programu SQL Server 2016 (13.x) SP2 i programu SQL Server 2017 (14.x) CU3 |
min_spills |
bigint | Minimalna liczba stron, które kiedykolwiek rozlała to zapytanie podczas pojedynczego wykonania. Dotyczy: począwszy od programu SQL Server 2016 (13.x) SP2 i programu SQL Server 2017 (14.x) CU3 |
max_spills |
bigint | Maksymalna liczba stron, które kiedykolwiek rozlała to zapytanie podczas pojedynczego wykonywania. Dotyczy: począwszy od programu SQL Server 2016 (13.x) SP2 i programu SQL Server 2017 (14.x) CU3 |
pdw_node_id |
Identyfikator węzła, w ramach którego znajduje się ta dystrybucja. dotyczy: Azure Synapse Analytics, Analytics Platform System (PDW) |
|
total_page_server_reads |
bigint | Łączna liczba odczytów zdalnych serwerów stron wykonywanych przez wykonania tego planu, ponieważ została skompilowana. Dotyczy: Hiperskala usługi Azure SQL Database |
last_page_server_reads |
bigint | Liczba odczytów zdalnych serwerów stron wykonanych podczas ostatniego wykonania planu. dotyczy: Hiperskala usługi Azure SQL Database |
min_page_server_reads |
bigint | Minimalna liczba zdalnych serwerów stron odczytuje, że ten plan kiedykolwiek był wykonywany podczas pojedynczego wykonywania. dotyczy: Hiperskala usługi Azure SQL Database |
max_page_server_reads |
bigint | Maksymalna liczba zdalnych serwerów stron odczytuje, że ten plan kiedykolwiek był wykonywany podczas pojedynczego wykonywania. dotyczy: Hiperskala usługi Azure SQL Database |
Nuta
1 W przypadku natywnie skompilowanych procedur składowanych po włączeniu zbierania statystyk czas procesu roboczego jest zbierany w milisekundach. Jeśli zapytanie jest wykonywane w mniej niż jedną milisekundę, wartość jest 0
.
Uprawnienia
Program SQL Server 2019 (15.x) i starsze wersje oraz usługa Azure SQL Managed Instance wymagają uprawnień VIEW SERVER STATE
.
Program SQL Server 2022 (16.x) i nowsze wersje wymagają uprawnień VIEW SERVER PERFORMANCE STATE
na serwerze.
W usłudze Azure SQL Database VIEW DATABASE STATE
w bazie danych lub członkostwo w roli serwera ##MS_ServerStateReader##
.
Uwagi
Statystyki w widoku są aktualizowane po zakończeniu zapytania.
Przykłady
A. Znajdowanie zapytań TOP N
Poniższy przykład zwraca informacje o pięciu pierwszych zapytaniach sklasyfikowanych według średniego czasu procesora CPU. W tym przykładzie zapytania są agregowane zgodnie z ich skrótem zapytania, tak aby zapytania logicznie równoważne zostały pogrupowane według skumulowanego użycia zasobów. Kolumna Sample_Statement_Text przedstawia przykład struktury zapytania, która pasuje do skrótu zapytania, ale powinna być odczytywana bez względu na określone wartości w instrukcji . Jeśli na przykład instrukcja zawiera WHERE Id = 5
, możesz przeczytać ją w bardziej ogólnej formie: WHERE Id = @some_value
.
SELECT TOP 5
query_stats.query_hash AS Query_Hash,
SUM(query_stats.total_worker_time) / SUM(query_stats.execution_count) AS Avg_CPU_Time,
MIN(query_stats.statement_text) AS Sample_Statement_Text
FROM (
SELECT QS.*,
SUBSTRING(ST.text, (QS.statement_start_offset / 2) + 1, (
(
CASE statement_end_offset
WHEN - 1
THEN DATALENGTH(ST.text)
ELSE QS.statement_end_offset
END - QS.statement_start_offset
) / 2
) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS QS
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) AS ST
) AS query_stats
GROUP BY query_stats.query_hash
ORDER BY 2 DESC;
B. Zwracanie agregacji liczby wierszy dla zapytania
Poniższy przykład zwraca informacje agregacji liczby wierszy (łączna liczba wierszy, wiersze minimalne, maksymalne wiersze i ostatnie wiersze) dla zapytań.
SELECT qs.execution_count,
SUBSTRING(qt.text, qs.statement_start_offset / 2 + 1, (
CASE
WHEN qs.statement_end_offset = - 1
THEN LEN(CONVERT(NVARCHAR(max), qt.text)) * 2
ELSE qs.statement_end_offset
END - qs.statement_start_offset
) / 2) AS query_text,
qt.dbid,
dbname = DB_NAME(qt.dbid),
qt.objectid,
qs.total_rows,
qs.last_rows,
qs.min_rows,
qs.max_rows
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE qt.text LIKE '%SELECT%'
ORDER BY qs.execution_count DESC;
Powiązana zawartość
- 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_procedure_stats (Transact-SQL)
- sys.dm_exec_trigger_stats (Transact-SQL)
- sys.dm_exec_cached_plans (Transact-SQL)