Fragmentatie
Door het uitvoeren van insert-, update- en delete statements op tabellen zullen de indexen gefragmenteerd raken. Dit houdt in dat er ruimte is gereserveerd voor een index maar er staat geen bruikbare informatie meer op die plek. De database engine bepaalt onder andere aan de hand van de fragmentatie van een index welke actie er uiteindelijk wordt uitgevoerd om een handeling ui te voeren; een table scan of een index scan.
Per platform wisselt het kantelpunt waarbij onderhoud noodzakelijk is. Bij SQL Server is het zo dat bij een fragmentatie onder de 30% een ‘reorganize index’ kan worden overwogen.
Slimme database onderhoud manieren
Komt dit fenomeen alleen op bepaalde database platformen voor? Nee, op alle platformen. MySQL, MariaDB, Oracle, Sybase, SQL Server, PostgreSQL en zelfs NoSQL varianten zoals MongoDB. De methode om dit op te lossen varieert per platform. Meestal zijn er standaard voorzieningen aanwezig maar vaak zijn die ingrijpend en blokkerend voor de normale database processen, zoals het opslaan van nieuwe records.
Bij de licensed platformen zoals SQL Server en Oracle komt het erop neer dat er meer betaald moet worden om deze blokkeringen te voorkomen. Er zijn echter manieren, met en zonder third-party tooling, om die ingrijpende acties te minimaliseren of zelfs te voorkomen.
Database onderhoudsplan
Per systeem of database kan een onderhoudsplan worden geïmplementeerd. Er zijn verschillende opties instelbaar voor het onderhoud, ingrijpend of risico mijdend. Een index rebuild tijdens gebruik van de database zal een impact hebben op de performance, dus is het aan te raden het in een onderhouds venster in te plannen. Ook hiervoor zijn allerlei varianten mogelijk die afhankelijk zijn van de setup bij de klant en het type applicatie.
Het implementeren van een onderhoudsplan is een iteratief proces. Men dient het gekozen onderhoud en de mate van fragmentatie gedurende de werkweek of werkdag zorgvuldig in de gaten te houden en op elkaar af te stemmen.
Wilt u eens praten of laten kijken of een onderhoudsplan de performance en levensduur van uw database omgeving zal verbeteren en op welke manier? Neem vrijblijvend contact op!