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)