Database performance tuning

Na langdurig gebruik van databases voor datawarehouses kan de performance van queries die er op uitgevoerd worden afnemen. Dit kan verschillende oorzaken hebben, bijvoorbeeld:

Verouderde statistieken

Voor het opstellen van een uitvoerplan van queries maakt het DBMS gebruik van kennis van de inhoud de database. Als de informatie over de inhoud niet (meer) goed overeenkomt met de werkelijkheid, kan een ongunstig uitvoerplan gekozen worden. Om dit te voorkomen moeten statistieken regelmatig bijgewerkt worden.

Fragmentatie

net zoals op een 'normale' harddisk, kan de data van tabellen door herhaaldelijk deleten en inserten verspreid over het fysieke opslagmedium komen te staan. Het kan hier door voorkomen dat voor het uitvoeren van een query veel meer lees- en kopverplaatsacties nodig zijn dan in het optimale geval. Om dit op te lossen kunnen tabellen en indexen gedefragmenteerd worden.

Verschil in omvang ontwikkel/test en produktie databases

Tijdens ontwikkeling wordt vaak gewerkt met kleinere databases dan in produktie. Queries die bij ontwikkeling goed performen kunnen in produktie, met name als de omvang van de produktiedatabase toeneemt, op een gegeven moment te traag worden. Over het algemeen is het dan niet voldoende om alleen maar te investeren in grotere of snellere hardware: de vertraging als gevolg van de toename van de omvang gaat over het algemeen sneller dan dat hardware bij kan houden.

SQL Query optimalisatie

door het herontwerpen van SQL queries kan er voor gezorgd worden dat de gewenste resultaten op een efficiënte manier verzameld worden. Dit kan bijvoorbeeld door queries zodanig op te stellen dat er geen geneste loops gebruikt zullen worden bij de uitvoering.

Index optimalisatie

De uitvoeringssnelheid van SQL queries kan vaak sterk geoptimaliseerd worden door de juiste indexen te creeren. Met name de juiste gecombineerde indexen (op meer dan één veld tegelijk) kunnen het aantal benodigde leesakties, en daarmee de uitvoeringstijd, drastisch beperken. (voorbeeld)