Q:
Wat doet defragmentatie voor SQL-systemen?
EEN:Continu databaseonderhoud en -bewaking zijn de belangrijkste elementen die in overweging moeten worden genomen om een SQL-systeem soepel te laten werken. Wanneer een database wordt gemaakt en gevuld, worden de gegevens in eerste instantie op een aaneengesloten fysieke locatie geplaatst (als er voldoende aaneengesloten fysieke ruimte beschikbaar is). Dus in dit geval zijn de logische volgorde en fysieke volgorde van gegevens waarschijnlijk vergelijkbaar en verhoogt het de prestaties.
Wanneer de gegevens worden gewijzigd, verwijderd of bijgewerkt, worden relevante indexen ook automatisch bijgewerkt om deze wijzigingen weer te geven. Als gevolg hiervan worden indexen gefragmenteerd en wordt de informatie verspreid over de opslagruimte. Het wijzigt de fysieke volgorde van gegevens (omdat de aaneengesloten toewijzing verliest) en het ophalen wordt tijdrovend, wat resulteert in trage databaseprestaties.
De oplossing voor dit probleem is om defragmentatie op een periodieke basis uit te voeren. Defragmentatie herbouwt of reorganiseert de indexen om de logische volgorde van gegevens te matchen met de fysieke volgorde. Voordat u defragmentatie uitvoert, moeten alle indexen correct worden geanalyseerd. De analyseresultaten bepalen of een reorganisatie of heropbouw vereist is.
De twee belangrijkste bewerkingen die worden uitgevoerd door het defragmentatieproces zijn:
- Indexreorganisatie - Indexreorganisatie wordt uitgevoerd wanneer de fragmentatie op een laag niveau is en de prestaties niet ernstig worden beïnvloed. Dit proces doet eigenlijk het fysiek opnieuw ordenen van bladniveau-pagina's om overeen te komen met de logische volgorde. Er worden geen nieuwe pagina's gemaakt; het herordent alleen de bestaande pagina's. Reorganisatie kan worden uitgevoerd terwijl het systeem online is zonder normale databasebewerkingen te blokkeren.
- Indexreconstructie - het indexreconstructieproces wordt uitgevoerd wanneer de fragmentatie zich op een dieper niveau bevindt en de prestaties te traag zijn. In dit proces wordt de oorspronkelijke index verwijderd en wordt een nieuwe nieuwe index gebouwd. Dus de fysieke en logische volgorde worden teruggezet naar de oorspronkelijke posities en de prestaties verbeteren het aantal. Door opnieuw samen te stellen, kunnen indien nodig ook nieuwe pagina's worden gemaakt, en het kan worden uitgevoerd in offline of online modus.
Daarom moet defragmentatie deel uitmaken van het onderhoudsproces van SQL Server en moet dit serieus worden genomen. Er moet een goed analyseplan voor de query worden opgesteld en gevolgd. Op basis van de uitvoer van de queryanalyse moet het opnieuw opbouwen of reorganiseren van indexen worden uitgevoerd. Kortom, defragmentatie is essentieel voor prestatieverbetering van SQL-systemen.