sys.dm_db_index_usage_stats (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Gibt die Anzahl verschiedener Arten von Indexvorgängen und den Zeitpunkt zurück, wann die einzelnen Vorgänge zuletzt ausgeführt wurden.

In Azure SQL Datenbank können dynamische Verwaltungsansichten keine Informationen verfügbar machen, die sich auf die Datenbankeinschluss auswirken, oder Informationen zu anderen Datenbanken, auf die der Benutzer Zugriff hat, verfügbar machen. Um diese Informationen nicht verfügbar zu machen, wird jede Zeile, die Daten enthält, die nicht zum verbundenen Mandanten gehören, herausgefiltert.

Hinweis

Die DMV sys.dm_db_index_usage_stats gibt keine Informationen zu speicheroptimierten Indizes oder räumlichen Indizes zurück. Informationen zur speicheroptimierten Indexverwendung finden Sie unter sys.dm_db_xtp_index_stats (Transact-SQL).

Hinweis

Um diese Ansicht aus Azure Synapse Analytics oder Analytics Platform System (PDW) aufzurufen, verwenden Sie sys.dm_pdw_nodes_db_index_usage_stats. Diese Syntax wird vom serverlosen SQL-Pool in Azure Synapse Analytics nicht unterstützt.

Spaltenname Datentyp BESCHREIBUNG
database_id smallint ID der Datenbank, für die die Tabelle oder Sicht definiert ist.
object_id int ID der Tabelle oder Sicht, für die der Index definiert ist.
index_id int Die ID des Index.
user_seeks bigint Anzahl von Suchvorgängen durch Benutzerabfragen.
user_scans bigint Anzahl der Überprüfungen durch Benutzerabfragen, die kein Such-Prädikat verwendet haben.
user_lookups bigint Anzahl von Lesezeichen-Nachschlagevorgängen durch Benutzerabfragen.
user_updates bigint Anzahl von Updates durch Benutzerabfragen. Dies umfasst Einfügen, Löschen und Aktualisierungen, die die Anzahl von Vorgängen darstellen, die nicht die tatsächlich betroffenen Zeilen ausführen. Wenn Sie beispielsweise 1.000 Zeilen in einer Anweisung löschen, erhöht sich diese Anzahl um 1.
last_user_seek datetime Zeitpunkt des letzten Suchvorgangs durch den Benutzer
last_user_scan datetime Zeitpunkt des letzten Scanvorgangs durch den Benutzer
last_user_lookup datetime Zeitpunkt des letzten Nachschlagevorgangs durch den Benutzer.
last_user_update datetime Zeitpunkt des letzten Updates durch den Benutzer.
system_seeks bigint Anzahl von Suchvorgängen durch Systemabfragen.
system_scans bigint Anzahl von Scanvorgängen durch Systemabfragen.
system_lookups bigint Anzahl von Nachschlagevorgängen durch Systemabfragen.
system_updates bigint Anzahl von Updates durch Systemabfragen.
last_system_seek datetime Zeitpunkt des letzten Systemsuchvorgangs.
last_system_scan datetime Zeitpunkt des letzten Systemscanvorgangs.
last_system_lookup datetime Zeitpunkt des letzten Systemnachschlagevorgangs.
last_system_update datetime Zeitpunkt des letzten Systemupdates.
pdw_node_id int Gilt für: Azure Synapse Analytics, Analytics Platform System (PDW)

Der Bezeichner für den Knoten, auf dem sich diese Verteilung befindet.

Bemerkungen

Jeder einzelne Such-, Scan-, Nachschlage- oder Updatevorgang für den angegebenen Index durch eine Abfrageausführung zählt als Verwendung dieses Indexes, und der entsprechende Zähler in dieser Sicht wird inkrementiert. Informationen werden für Vorgänge angezeigt, die durch Benutzerabfragen verursacht werden, und für Vorgänge, die durch intern generierte Abfragen verursacht werden, wie z. B. Scans zum Sammeln von Statistikdaten.

Die user_updates Spalte ist ein Wartungsindikator für den Index, der durch Einfüge-, Update- oder Löschvorgänge für die zugrunde liegende Tabelle oder Sicht verursacht wird. Mithilfe dieser Sicht können Sie ermitteln, welche Indizes selten von den Anwendungen verwendet werden. Außerdem können Sie mithilfe dieser Sicht bestimmen, welche Indizes einen hohen Wartungsaufwand erzeugen. Sie können Indizes löschen, die einen hohen Wartungsaufwand erzeugen, aber nicht oder nur selten für Abfragen verwendet werden.

Die Indikatoren werden beim Starten der Datenbank-Engine als leer initialisiert. Verwenden Sie die sqlserver_start_time-Spalte in sys.dm_os_sys_info, um die aktuellste Startzeit der Datenbank-Engine zu suchen. Außerdem werden jedes Mal, wenn eine Datenbank getrennt oder beendet wird (beispielsweise, weil AUTO_CLOSE auf ON festgelegt ist), alle dieser Datenbank zugehörigen Zeilen entfernt.

Wenn ein Index verwendet wird, wird eine Zeile hinzugefügt sys.dm_db_index_usage_stats , wenn noch keine Zeile für den Index vorhanden ist. Beim Hinzufügen der Zeile sind deren Zähler anfänglich auf 0 festgelegt.

Beim Upgrade auf SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x) oder SQL Server 2014 (12.x) werden Einträge in sys.dm_db_index_usage_stats entfernt. Ab SQL Server 2016 (13.x) werden Einträge wie vor SQL Server 2008 R2 (10.50.x) beibehalten.

Berechtigungen

Für SQL Server und SQL Managed Instance ist die VIEW SERVER STATE-Berechtigung erforderlich.

Für Standard-, S0- und S1-Dienstziele von SQL-Datenbank sowie für Datenbanken in Pools für elastische Datenbanken ist das Konto des Serveradministrators, des Azure Active Directory-Administrators oder die Mitgliedschaft in der ##MS_ServerStateReader##Serverrolle erforderlich. Für alle anderen SQL-Datenbank-Dienstziele ist entweder die VIEW DATABASE STATE-Berechtigung für die Datenbank oder die Mitgliedschaft in der ##MS_ServerStateReader##-Serverrolle erforderlich.

Berechtigungen für SQL Server 2022 und höher

Erfordert die VIEW SERVER PERFORMANCE STATE-Berechtigung auf dem Server.

Weitere Informationen

Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit dem Index (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)
Überwachen und Optimieren der Leistung