SQL Query optimalisatie door middel van indexen

Om een query goed te laten performen moet je 'meedenken' met de queryplanner van het DBMS. Je moet in feite zelf bedenken wat de snelste manier is om je gegevens bij elkaar te sprokkelen. Voor echt grote queries moet je daarbij specifieke indexen creeeren.

noot

Wellicht kunt U onderstaand voorbeeld niet zo makkelijk volgen. Wilt U echter wel uw queries sneller uitgevoerd hebben, bedenk dan: voor Flux IT is dit gesneden koek. Neemt U gerust contact op.

voorbeeld
Gegeven deze opgave: Gegeven is het schema:
          WERKNR(WNR,WNAAM,SALARIS)
          PROJECT(PNR,PNAAM,PBESCHR,BUDGET)
          KLUS(WNUMMER,PNUMMER,UREN)
En de query

         SELECT   WNAAM, 1.1 * SALARIS
         FROM     WERKNR W, PROJECT P, KLUS K
         WHERE    W.WNR = K.WNUMMER AND K.PNUMMER = P.PNR AND
                  P.PNAAM = "ESPRIT"
Dit resulteert in de namen en 110% van het salaris van alle werknemers op klussen in ESPRIT projecten.

analyse

index constructie

Om deze query optimaal te laten performen moeten de volgende indexen gemaakt worden:
  1. PROJECT (PNAAM, PNR)
  2. KLUS (PNUMMERR,WNUMMERR)
  3. WERKNEMER (WNR)
Met deze indexen kan de queryplanner het volgende: Over het algemeen is in dit soort gevallen de eerst genoemde index cruciaal: die vindt de benodigde projecten op de goede volgorde.