Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Geeft samenvattende informatie over groepen ontbrekende indexen, exclusief ruimtelijke indexen.
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.
| Kolomnaam | Gegevenstype | Description |
|---|---|---|
| group_handle | int | Identificeert een groep ontbrekende indexen. Deze identificatie is uniek binnen de server. De andere kolommen geven informatie over alle zoekopdrachten waarvoor de index in de groep als ontbrekend wordt beschouwd. Een indexgroep bevat slechts één index. Kan in sys.dm_db_missing_index_groups worden aangesloten index_group_handle. |
| unique_compiles | bigint | Aantal compilaties en hercompilaties die baat zouden hebben bij deze ontbrekende indexgroep. Compilaties en hercompilaties van vele verschillende queries kunnen bijdragen aan deze kolomwaarde. |
| user_seeks | bigint | Aantal zoekopdrachten veroorzaakt door gebruikerszoekopdrachten waarvoor de aanbevolen index in de groep gebruikt had kunnen worden. |
| user_scans | bigint | Aantal scans veroorzaakt door gebruikerszoekopdrachten waarvoor de aanbevolen index in de groep gebruikt had kunnen worden. |
| last_user_seek | datetime | Datum en tijd van de laatste zoekopdracht veroorzaakt door gebruikerszoekopdrachten waarvoor de aanbevolen index in de groep gebruikt kon worden. |
| last_user_scan | datetime | Datum en tijd van de laatste scan veroorzaakt door gebruikerszoekopdrachten waarvoor de aanbevolen index in de groep gebruikt had kunnen worden. |
| avg_total_user_cost | float | Gemiddelde kosten van de gebruikersqueries die door de index in de groep kunnen worden verlaagd. |
| avg_user_impact | float | Gemiddeld procentueel voordeel dat gebruikerszoekopdrachten zouden kunnen ervaren als deze ontbrekende indexgroep werd geïmplementeerd. De waarde betekent dat de querykosten gemiddeld met dit percentage zouden dalen als deze ontbrekende indexgroep werd geïmplementeerd. |
| system_seeks | bigint | Aantal zoekopdrachten veroorzaakt door systeemzoekopdrachten, zoals autostatistieken, waarvoor de aanbevolen index in de groep gebruikt had kunnen worden. Voor meer informatie, zie Auto Stats Event Class. |
| system_scans | bigint | Aantal scans veroorzaakt door systeemzoekopdrachten waarvoor de aanbevolen index in de groep gebruikt had kunnen worden. |
| last_system_seek | datetime | Datum en tijd van de laatste systeemzoekopdracht veroorzaakt door systeemzoekopdrachten waarvoor de aanbevolen index in de groep gebruikt had kunnen worden. |
| last_system_scan | datetime | Datum en tijd van de laatste systeemscan veroorzaakt door systeemzoekopdrachten waarvoor de aanbevolen index in de groep gebruikt kon zijn. |
| avg_total_system_cost | float | Gemiddelde kosten van systeemqueries die door de index in de groep kunnen worden verlaagd. |
| avg_system_impact | float | Gemiddeld procentueel voordeel dat systeemzoekopdrachten kunnen ervaren als deze ontbrekende indexgroep wordt geïmplementeerd. De waarde betekent dat de querykosten gemiddeld met dit percentage zouden dalen als deze ontbrekende indexgroep werd geïmplementeerd. |
Opmerkingen
De informatie die door sys.dm_db_missing_index_group_stats wordt teruggegeven, wordt bijgewerkt bij elke query-uitvoering, niet bij elke querycompilatie of hercompilatie. Gebruiksstatistieken worden niet bijgehouden en worden alleen bewaard totdat de database-engine opnieuw is opgestart. Databasebeheerders moeten periodiek back-ups maken van de ontbrekende indexinformatie als ze de gebruiksstatistieken na serverrecycling willen behouden. Gebruik de kolom sqlserver_start_time in sys.dm_os_sys_info om de laatste opstarttijd van de database-engine te vinden.
Opmerking
De uitkomsten voor deze DMV zijn beperkt tot 600 rijen. Elke rij bevat één ontbrekende index. Als je meer dan 600 ontbrekende indexen hebt, moet je de bestaande ontbrekende indexen aanpakken zodat je daarna de nieuwere kunt bekijken.
Een ontbrekende indexgroep kan meerdere zoekopdrachten hebben die dezelfde index nodig hadden. Voor meer informatie over individuele zoekopdrachten die een specifieke index in deze DMV nodig hadden, zie sys.dm_db_missing_index_group_stats_query.
Permissions
Om deze dynamische beheerweergave te bevragen, moeten gebruikers de toestemming VIEW SERVER STATE of een andere toestemming krijgen die de VIEW SERVER STATE toestemming impliceert.
Machtigingen voor SQL Server 2022 en hoger
Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.
Voorbeelden
De volgende voorbeelden illustreren hoe je de sys.dm_db_missing_index_group_stats dynamische beheerweergave kunt gebruiken. Lees meer over richtlijnen voor het gebruik van ontbrekende indexen in lijn met niet-geclusterde indexen met suggesties voor ontbrekende indexen.
Eén. Vind de 10 ontbrekende indexen met de hoogste verwachte verbetering voor gebruikerszoekopdrachten
De volgende query bepaalt welke 10 ontbrekende indexen de hoogst verwachte cumulatieve verbetering, in aflopende volgorde, voor gebruikersqueries zouden opleveren.
SELECT TOP 10 *
FROM sys.dm_db_missing_index_group_stats
ORDER BY avg_total_user_cost * avg_user_impact * (user_seeks + user_scans)DESC;
B. Zoek de individuele ontbrekende indexen en hun kolomdetails voor een bepaalde ontbrekende indexgroep
De volgende query bepaalt welke ontbrekende indexen een bepaalde ontbrekende indexgroep vormen en toont hun kolomdetails. Voor dit voorbeeld is de ontbrekende index group_handle 24.
SELECT migs.group_handle, mid.*
FROM sys.dm_db_missing_index_group_stats AS migs
INNER JOIN sys.dm_db_missing_index_groups AS mig
ON (migs.group_handle = mig.index_group_handle)
INNER JOIN sys.dm_db_missing_index_details AS mid
ON (mig.index_handle = mid.index_handle)
WHERE migs.group_handle = 24;
Deze zoekopdracht geeft de naam van de database, het schema en de tabel waar een index ontbreekt. Het geeft ook de namen van de kolommen die voor de indexsleutel gebruikt moeten worden. Bij het schrijven van de CREATE INDEX DDL-instructie om ontbrekende indexen te implementeren, vermeld dan eerst de gelijkheidskolommen en daarna de ongelijkheidskolommen in de ON < table_name-clausule> van de CREATE INDEX-instructie. Opgenomen kolommen moeten worden vermeld in de INCLUDE-clausule van de CREATE INDEX-instructie. Om een effectieve volgorde voor de gelijkheidskolommen te bepalen, sorteer je ze op basis van hun selectiviteit, waarbij je eerst de meest selectieve kolommen vermeld (meest links in de kolomlijst). Leer hoe je suggesties voor ontbrekende indexen toepast.
Volgende stappen
Lees meer over de ontbrekende indexfunctie in de volgende artikelen:
- Niet-geclusterde indexen afstemmen met behulp van suggesties voor ontbrekende indexen
- sys.dm_db_missing_index_columns (Transact-SQL)
- sys.dm_db_missing_index_details (Transact-SQL)
- sys.dm_db_missing_index_groups (Transact-SQL)
- sys.dm_db_missing_index_group_stats_query (Transact-SQL)
- MAAK INDEX AAN (Transact-SQL)
- sys.dm_os_sys_info (Transact-SQL)