Overzicht van indexfragmentatie
Wat is indexfragmentatie en waarom ik me daarop zou moeten richten: Fragmentatie bestaat wanneer de logische ordening in de index (gebaseerd op de sleutelwaarde in de index) niet overeenkomt met de fysieke volgorde in de indexpagina's in de indexpagina's in de index van de pagina's die de index bevat. Telkens wanneer een invoeg-, update- of verwijderingsoperatie wordt uitgevoerd op de onderliggende data, wijzigt de database-engine automatisch de index. Bijvoorbeeld, het toevoegen van rijen aan een tabel kan ervoor zorgen dat er gesplitste rijen worden om bestaande pagina's in de index op te slaan en ruimte te maken voor het invoegen van nieuwe sleutels. In de loop van de tijd kunnen deze aanpassingen ervoor zorgen dat informatie in de index verspreid raakt in de database (met fragmenten). Fragmentatie treedt op wanneer de logische ordening (gebaseerd op sleutelwaarde) in de pagina's die de index bevat niet overeenkomt met de fysieke volgorde in het databestand. Een groot aantal gefragmenteerde indexen kan de queryprestaties vertragen omdat extra I/O nodig is om de data te vinden waarnaar de index verwijst. Meer I/O kan ervoor zorgen dat de applicatie traag reageert, vooral wanneer er scanbewerkingen bij betrokken zijn.
Controleer op fragmentatie van database-indexen
Bevelen:
Er zijn twee manieren om te defragmenteren: indexen reorganiseren en opnieuw aanmaken; het herbouwen van indexen verwijst naar het verwijderen van oude indexen en het opnieuw opbouwen van nieuwe indexen in een transactie, waardoor de harde schijfruimte van de oorspronkelijke index wordt teruggewonnen en nieuwe opslagruimte wordt toegewezen om een indexstructuur te creëren. Het herorganiseren van indexen verwijst naar het niet toewijzen van nieuwe opslagruimte, het herorganiseren van de bladknopen van de indexstructuur op basis van de oorspronkelijke ruimte, zodat de logische volgorde en fysieke volgorde van de datapagina's consistent zijn, en het vrijmaken van overtollige ruimte in de index.
Gebruik de functie sys.dm_db_index_physical_stats om de mate van fragmentatie, veld avg_fragmentation_in_percent het percentage teruggegeven logische fragmenten te detecteren, in het algemeen raadt Microsoft een drempel van 30% aan:
avg_fragmentation_in_percent >5% en <=30%: ALTER INDEX REORGANISEREN; avg_fragmentation_in_percent >30%: ALTER INDEX REBUILD;
avg_fragmentation_in_percent: Indexfragmentatiepercentage, als de fragmentatie minder is dan 10%~20%, is fragmentatie waarschijnlijk geen probleem,Als de indexfragmentatie op 20%~40% ligt, kan fragmentatie een probleem zijn, maar indexresolutie kan worden geëlimineerd door indexreorganisatie, en grootschalige fragmentatie (wanneer fragmentatie groter is dan 40%) kan indexreconstructie vereisen.
Zoek de fragmentatie-informatie op voor alle indexen van een gegeven tabel
Tabel herindexeren
Herbouw de index van alle tabellen in de gehele database
Weg:De hyperlink-login is zichtbaar.
|