Hoe kun je database onderhoud configuren

Onderhoud op de Plant Applications database is noodzakelijk om de applicatie zo goed mogelijk te laten functioneren. Aangezien Plant Applications zelf standaard geen onderhoud uitvoert, moet dit dus achteraf manueel geconfigureerd worden.

Mogelijk heeft de IT afdeling al database onderhoud ingericht en ingepland en is het enkel noodzakelijk deze extra database toe te voegen aan het onderhoudsplan voor SQL Server.

Onderhoud scripts

De volgende onderhouds oplossing voor SQL Server is een best practice dat gebruikt kan worden. Deze oplossing heeft meer functionaliteit en kan slimmer bepalen hoe het best het onderhoud uit te voeren per index vergeleken met de standaard SQL Server functionaliteit

https://ola.hallengren.com/sql-server-index-and-statistics-maintenance.html

Er zijn hier verschillende scripts die eenvoudig gebruikt kunnen worden, zoals:

  • Index Maintenance: Voert index defragmentatie uit en update statistieken.
  • Backups; Voert backups uit voor één of meerdere databases.

Deze scripts kunnen aangemaakt en uitgevoerd worden als stored procedures en kunnen ingepland worden met een taak. Er is ook een optie voor een log table voor de uitgevoerde onderhouds acties.

De volgende taken kunnen geconfigureerd worden om statistieken te updaten en index defragementatie uit te voeren op de database.

Statistieken onderhoud

Configureer een SQL Server agent opdracht met daarin het volgende script dat dagelijk uitgevoerd kan worden. Het updaten van statistieken is belangrijk zodat queries gecompileerd worden met de laatste statistieken.

EXECUTE dbo.IndexOptimize

   @Databases = 'SOADB',

   @FragmentationLow = NULL,

   @FragmentationMedium = NULL,

   @FragmentationHigh = NULL,

   @UpdateStatistics = 'ALL',

   @OnlyModifiedStatistics = 'Y',

   @LogToTable = 'Y';

Index onderhoud

Configureer een SQL Server agent opdracht met daarin het volgende script dat wekelijks uitgevoerd kan worden. Dit kan ook vaker maar is meestal niet nodig.

Het uitvoeren van de index defragmentatie is belangrijk zodat de indexen van de tabellen, weer efficient zijn gestructureerd wanneer ze gebruikt worden door queries. Index fragmentatie ontstaat als gevolg van database tabel manipulaties.

EXECUTE dbo.IndexOptimize

   @Databases = 'SOADB',

   @FragmentationLow = NULL,

   @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',

   @FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',

   @FragmentationLevel1 = 5,

   @FragmentationLevel2 = 30,

   @UpdateStatistics = 'ALL',

   @OnlyModifiedStatistics = 'Y',

   @LogToTable = 'Y';