Udostępnij za pomocą


sys.dm_db_index_usage_stats (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database w Microsoft Fabric

Zwraca liczbę różnych typów operacji indeksowych oraz czas ostatniego wykonania każdego typu operacji.

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

DMV sys.dm_db_index_usage_stats nie zwraca informacji o indeksach zoptymalizowanych pod pamięć ani indeksach przestrzennych. Aby uzyskać informacje o wykorzystaniu indeksu zoptymalizowanego pod względem pamięci, zobacz sys.dm_db_xtp_index_stats (Transact-SQL).

Uwaga / Notatka

Aby wywołać ten widok z Azure Synapse Analytics lub Analytics Platform System (PDW), użyj sys.dm_pdw_nodes_db_index_usage_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 smallint ID bazy danych, na której zdefiniowana jest tabela lub widok.

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 ID tabeli lub widoku, na którym zdefiniowany jest indeks
index_id int Identyfikator indeksu.
user_seeks bigint Liczba wyszukiwań według zapytań użytkownika.
user_scans bigint Liczba skanów przez zapytania użytkownika, które nie używały predykatu 'seek'.
user_lookups bigint Liczba wyszukiwań zakładek według zapytań użytkowników.
user_updates bigint Liczba aktualizacji według zapytań użytkowników. Obejmuje to wstawienie, usunięcie i aktualizację oznaczające liczbę wykonanych operacji, a nie rzeczywiste wiersze dotknięte. Na przykład, jeśli usuniesz 1000 wierszy w jednym zawołaniu, liczba ta wzrasta o 1
last_user_seek datetime Czas ostatniego wyszukiwania użytkownika
last_user_scan datetime Czas ostatniego skanowania użytkownika.
last_user_lookup datetime Czas ostatniego wyszukiwania użytkownika.
last_user_update datetime Czas ostatniej aktualizacji użytkownika.
system_seeks bigint Liczba wyszukiwań według zapytań systemowych.
system_scans bigint Liczba skanów według zapytań systemowych.
system_lookups bigint Liczba wyszukiwań według zapytań systemowych.
system_updates bigint Liczba aktualizacji według zapytań systemowych.
last_system_seek datetime Czas ostatniego poszukiwania systemu.
last_system_scan datetime Czas ostatniego skanowania systemu.
last_system_lookup datetime Czas ostatniego wyszukiwania systemu.
last_system_update datetime Czas ostatniej aktualizacji systemu.
pdw_node_id int Dotyczy do: Azure Synapse Analytics, Analytics Platform System (PDW)

Identyfikator węzła, w ramach którego znajduje się ta dystrybucja.

Uwagi

Każde pojedyncze wyszukiwanie, skanowanie, wyszukiwanie lub aktualizacja określonego indeksu przez jedno wykonanie zapytania jest liczone jako użycie tego indeksu i zwiększa odpowiadający mu licznik w tym widoku. Informacje są raportowane zarówno za operacje wywołane przez zapytania przesłane przez użytkownika, jak i za operacje wywołane przez wewnętrzne zapytania, takie jak skanowanie w celu zbierania statystyk.

Kolumna user_updates jest licznikiem utrzymania indeksu spowodowanego operacjami wstawiania, aktualizacji lub usuwania w tabeli lub widoku. Możesz użyć tego widoku, aby określić, które indeksy są używane tylko w sposób powierzchowny przez Twoje aplikacje. Możesz także użyć tego widoku, aby określić, które indeksy generują narzut utrzymania. Możesz rozważyć rezygnację z indeksów, które generują narzut utrzymania, ale nie są używane do zapytań lub są używane tylko rzadko.

Liczniki są inicjalizowane do opróżniania się za każdym razem, gdy silnik bazy danych zostanie uruchomiony. Użyj kolumny sqlserver_start_time w sys.dm_os_sys_info , aby znaleźć ostatni czas uruchamiania aparatu bazy danych. Dodatkowo, gdy baza danych zostaje odłączona lub zamknięta (na przykład dlatego, że AUTO_CLOSE ustawione na ON), wszystkie wiersze powiązane z bazą danych są usuwane.

Gdy używany jest indeks, dodaje sys.dm_db_index_usage_stats się wiersz, jeśli nie istnieje już wiersz dla tego indeksu. Po dodaniu wiersza jego liczniki początkowo są ustawiane na zero.

Podczas aktualizacji do SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x) lub SQL Server 2014 (12.x) wpisy w są sys.dm_db_index_usage_stats usuwane. Począwszy od SQL Server 2016 (13.x), wpisy są zachowywane tak, jak były przed SQL Server 2008 R2 (10.50.x).

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.

Zobacz także

Indeksowanie powiązanych dynamicznych widoków zarządzania i funkcji (Transact-SQL)
sys.dm_db_index_physical_stats (Transact-SQL)
sys.dm_db_index_operational_stats (Transact-SQL)
sys.indexes (Transact-SQL)
sys.objects (Transact-SQL)
sys.dm_os_sys_info (Transact-SQL)
Monitorowanie i dostrajanie pod kątem wydajności