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 Verwaltungsansichten keine Informationen verfügbar machen, die sich auf das Eindämmen von Datenbanken auswirken oder Informationen zu anderen Datenbanken verfügbar machen, auf die der Benutzer zugreifen kann. Um diese Informationen nicht verfügbar zu machen, wird jede Zeile mit Daten, die nicht 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 elastischen Pools 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 SQL-Datenbank Standard-, S0- und S1-Dienstziele sowie für Datenbanken in elastischen Pools ist das Serveradministratorkonto, das Microsoft Entra-Administratorkonto 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
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