Delen via


sys.dm_db_index_usage_stats (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform Systeem (PDW)SQL-database in Microsoft Fabric

Geeft de tellingen van verschillende typen indexoperaties terug en de tijd waarop elk type bewerking voor het laatst is uitgevoerd.

In Azure SQL Database kunnen dynamische beheerweergaven geen informatie weergeven die van invloed is op databaseinsluiting of informatie weergeven over andere databases waartoe de gebruiker toegang heeft. Om te voorkomen dat deze informatie zichtbaar wordt gemaakt, wordt elke rij met gegevens die geen deel uitmaken van de verbonden tenant uitgefilterd.

Opmerking

De DMV sys.dm_db_index_usage_stats geeft geen informatie terug over geheugengeoptimaliseerde indexen of ruimtelijke indexen. Voor informatie over geheugengeoptimaliseerd indexgebruik, zie sys.dm_db_xtp_index_stats (Transact-SQL).

Opmerking

Om deze weergave aan te roepen vanuit Azure Synapse Analytics of Analytics Platform System (PDW), gebruik sys.dm_pdw_nodes_db_index_usage_stats. Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.

Kolomnaam Gegevenstype Description
database_id smallint ID van de database waarop de tabel of weergave is gedefinieerd.

In Azure SQL Database zijn de waarden uniek binnen één database of een elastische pool, maar niet binnen een logische server.
object_id int ID van de tabel of weergave waarop de index is gedefinieerd
index_id int Id van de index.
user_seeks bigint Aantal zoekopdrachten door gebruikerszoekopdrachten.
user_scans bigint Aantal scans door gebruikerszoekopdrachten die geen 'zoek'-predicaat gebruikten.
user_lookups bigint Aantal bladwijzerzoekopdrachten door gebruikerszoekopdrachten.
user_updates bigint Aantal updates per gebruikerszoekopdrachten. Dit omvat Insert, Remove en Updates die het aantal uitgevoerde bewerkingen weergeven, niet de daadwerkelijke getroffen rijen. Als je bijvoorbeeld 1000 rijen in één statement verwijdert, neemt dit aantal met 1 toe
last_user_seek datetime Tijd van laatste gebruikerszoekopdracht
last_user_scan datetime Tijd van laatste gebruikersscan.
last_user_lookup datetime Tijd van laatste gebruikerszoekopdracht.
last_user_update datetime Tijd van de laatste gebruikersupdate.
system_seeks bigint Aantal zoekopdrachten per systeemzoekopdrachten.
system_scans bigint Aantal scans per systeemzoekopdrachten.
system_lookups bigint Aantal opzoekopdrachten per systeemqueries.
system_updates bigint Aantal updates per systeemquery.
last_system_seek datetime Tijd van laatste systeemzoek.
last_system_scan datetime Tijd van de laatste systeemscan.
last_system_lookup datetime Tijd van laatste systeemopzoek.
last_system_update datetime Tijd van de laatste systeemupdate.
pdw_node_id int van toepassing op: Azure Synapse Analytics, Analytics Platform System (PDW)

De id voor het knooppunt waarop deze distributie zich bevindt.

Opmerkingen

Elke individuele zoek, scan, opzoeking of update op de gespecificeerde index door één query-uitvoering wordt geteld als het gebruik van die index en verhoogt de bijbehorende teller in deze weergave. Informatie wordt gerapporteerd voor zowel bewerkingen veroorzaakt door door gebruikers ingediende queries, als voor operaties veroorzaakt door intern gegenereerde queries, zoals scans voor het verzamelen van statistieken.

De user_updates kolom is een onderhoudsteller op de index veroorzaakt door invoeg-, update- of verwijderingsbewerkingen op de onderliggende tabel of weergave. Je kunt deze weergave gebruiken om te bepalen welke indexen slechts licht worden gebruikt door je applicaties. Je kunt de weergave ook gebruiken om te bepalen welke indexen onderhoudskosten hebben. Je kunt overwegen indexen te laten vallen die onderhoudskosten veroorzaken, maar niet voor queries worden gebruikt, of slechts zelden voor queries worden gebruikt.

De tellers worden geïnitialiseerd tot leeg telkens wanneer de database-engine wordt gestart. Gebruik de kolom sqlserver_start_time in sys.dm_os_sys_info om de laatste opstarttijd van de database-engine te vinden. Bovendien worden wanneer een database wordt losgekoppeld of gesloten (bijvoorbeeld omdat AUTO_CLOSE op AAN staat), alle rijen die aan de database zijn gekoppeld verwijderd.

Wanneer een index wordt gebruikt, wordt een rij toegevoegd sys.dm_db_index_usage_stats als er nog geen rij bestaat voor de index. Wanneer de rij wordt toegevoegd, worden de tellers aanvankelijk op nul gezet.

Tijdens de upgrade naar SQL Server 2008 R2 (10.50.x), SQL Server 2012 (11.x) of SQL Server 2014 (12.x) worden vermeldingen verwijderd sys.dm_db_index_usage_stats . Vanaf SQL Server 2016 (13.x) worden de vermeldingen behouden zoals ze waren vóór SQL Server 2008 R2 (10.50.x).

Permissions

Voor SQL Server en SQL Managed Instance is een machtiging vereist VIEW SERVER STATE .

Voor servicedoelstellingen van SQL Database Basic, S0 en S1 en voor databases in elastische pools is het serverbeheerdersaccount , het Microsoft Entra-beheerdersaccount of het lidmaatschap van de ##MS_ServerStateReader##serverrol vereist. Voor alle andere SQL Database-servicedoelstellingen is de VIEW DATABASE STATE machtiging voor de database of het lidmaatschap van de ##MS_ServerStateReader## serverfunctie vereist.

Machtigingen voor SQL Server 2022 en hoger

Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.

Zie ook

Indexgerelateerde dynamische beheerweergaven en -functies (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)
Prestaties bewaken en afstemmen voor betere resultaten