Udostępnij za pośrednictwem


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 varbinary(64) 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 varbinary(64) 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 Binary(8) 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 varbinary(64) 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 w warstwie Podstawowa, S0i cele usługi S1 oraz dla baz danych w elastycznych pulachkonto administratora serwera , konto administratora Microsoft Entra lub członkostwo w roli serwera jest wymagane. We wszystkich innych celach usługi SQL Database wymagane jest uprawnienie 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;