Freigeben über


sys.dm_db_index_usage_stats (Transact-SQL)

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics 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 Verwaltungssichten keine Informationen verfügbar machen, die sich auf den Datenbankeinschluss auswirken würden oder die sich auf andere Datenbanken beziehen, auf die der Benutzer Zugriff hat. Um zu vermeiden, dass diese Informationen verfügbar gemacht werden, wird jede Zeile mit Daten, die zum verbundenen Mandanten gehören, herausgefiltert.

Hinweis

Der 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).For information about memory-optimized index use, see 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.

In Azure SQL-Datenbank sind die Werte innerhalb einer einzelnen Datenbank oder eines Pools für elastische Datenbanken eindeutig, aber nicht innerhalb eines logischen Servers.
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 Scans nach Benutzerabfragen, die das Prädikat "seek" nicht verwendet haben.
user_lookups bigint Anzahl von Lesezeichen-Nachschlagevorgängen durch Benutzerabfragen.
user_updates bigint Anzahl von Updates durch Benutzerabfragen. Dazu gehören "Einfügen", "Löschen" und "Aktualisierungen", die anzahl der Vorgänge darstellen, die nicht die tatsächlichen Zeilen betreffen. Wenn Sie beispielsweise 1000 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.

Hinweise

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-, Aktualisierungs- oder Löschvorgänge in der zugrunde liegenden Tabelle oder Ansicht 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 Leistungsindikatoren werden bei jedem Start des Datenbankmoduls so initialisiert, dass sie leer sind. 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 für den Index noch keine Zeile vorhanden ist. Beim Hinzufügen der Zeile sind deren Zähler anfänglich auf 0 festgelegt.

Während des Upgrades auf SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x) oder SQL Server 2014 (12.x) werden Einträge 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 die SQL-Datenbank-Ziele Basic, S0 und S1 sowie für Datenbanken in Pools für elastische Datenbanken ist das Konto des Serveradministrators oder des Microsoft Entra-Administratorkontos 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.

Siehe auch

Indexbezogene dynamische Verwaltungsansichten und -funktionen (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