Dikwijls wordt er bij een langzame database niet aan gedacht dat je ook gewoon de datatoegang kunt optimaliseren. Eigenlijk is dat vreemd, omdat de alternatieven (hardware upgrades of complete optimalisatie van de database) bijzonder kostbaar zijn.

Onderschatte oplossing

Rob Steward, een van de auteurs van het Data Access Handbook, is een warm voorstander van het tweaken van de toegang als manier om de database beter te laten presteren. “Het kan heel veel verschil maken. De toegang tot de data is immers de kern van elke zakelijke applicatie”, zegt Steward.

Steward probeert technici die denken dat het optimaliseren van de toegang maar van kleine betekenis kan zijn voor de database op andere gedachten te brengen. “Laatst was ik op een conferentie, en een bezoeker kwam naar mij toe. Hij vertelde dat hij mijn advies had opgevolgd, en dat hij een kleine wijziging had doorgevoerd in de code voor datatoegang. Een van de processen die voorheen acht uur duurde om af te ronden, was nu in tien minuten gedaan.”

Prestatiewinst

Hij geeft toe dat het een extreem voorbeeld is, maar ervaren databasegebruikers zijn het met Steward eens. David Cartwright is beheerder van het netwerk, de telecom en de hosting bij financiële instelling CPA Global, en zit in zijn vrije tijd in de jury van programmeerwedstrijden georganiseerd door de British Computer Society.

Hij heeft zelf ervaren hoe kleine veranderingen in de datatoegangscode de prestaties flink kunnen opkrikken. “Een tijdje terug hebben we een deel van een query veranderd van een view naar een door de gebruiker gedefinieerde functie die een tabel terugstuurt als antwoord. De prestatie verbeterde met 95 procent. Achteraf gezien is dat logisch, want de taak was eigenlijk te ingewikkeld geworden voor een enkele SQL-query.”

Volgens Steward vergeten bedrijven vaak dat gegevenstoegang cruciaal is voor het hele proces. “Een typische applicatie verbruikt 50 tot 95 procent van zijn tijd voor het aanroepen van de data. Als je dat proces kunt versnellen, kun je heel veel prestatiewinst boeken. Die loopt makkelijk op naar 50 procent.”

Bottleneck

Bedrijven pakken de ontwikkeling van code fundamenteel verkeerd aan, vindt Steward, en hij moet er een klein beetje om lachen dat de cirkel binnen de ict-industrie rond lijkt te zijn. “Programmeurs moesten in de jaren 80 zo min mogelijk code schrijven om geheugen te besparen en de hulpbronnen optimaal te benutten. Mainframeprogrammeurs probeerden op elke byte te beknibbelen. Dat doen we nu weer, in een poging om meer en meer uit onze systemen te halen.”

Maar dit heeft volgens hem tot bottleneckproblemen geleid voor de datatoegang. Het wordt alleen maar erger nu bedrijven meer en meer grijpen naar virtualisatie, een technologie die er juist op is gericht om servers tot de laatste druppel uit te persen.

Cartwright zegt dat ontwikkelaars vaak niet nadenken over hoe hun databases in de praktijk worden gebruikt. “Snelle netwerken en servers zijn een vloek voor applicatieontwikkelaars, die van traagheid niets merken op hun eigen werkstations. Maar als je de applicatie verplaatst van een ontwikkelingssysteem met honderdduizend rijen naar een centrale server met honderd miljoen rijen, loopt alles in de soep door het enorme dataverkeer dat ontstaat”, zegt hij.