Dictionary

Query optimizer

De query optimizer is het onderdeel van een database dat beslist hoe een SQL-query uitgevoerd wordt. Hij kiest bijvoorbeeld join-volgorde, scans, indexen en sorteerstrategieën.

Wat is een query optimizer?

De query optimizer is het onderdeel van een database dat beslist hoe een SQL-query uitgevoerd wordt. Jij schrijft wat je wil zien. De optimizer kiest de route ernaartoe.

Neem een query die orders, klanten en producten samenbrengt. De database kan eerst klanten filteren, eerst orders lezen, een index gebruiken, een tabel scannen, of een andere join-volgorde kiezen. Al die routes geven hetzelfde resultaat, maar niet dezelfde wachttijd.

De optimizer zoekt dus naar een uitvoeringsplan dat naar verwachting goedkoop is in leestijd, CPU, geheugen en tijdelijke opslag.

Waarop baseert de optimizer zich?

De optimizer kijkt naar de query, het schema, beschikbare indexen, constraints en statistieken over de data. Die statistieken vertellen bijvoorbeeld hoeveel rijen een tabel heeft en hoe selectief een kolom is.

Een filter op land = 'BE' helpt weinig als bijna alle klanten Belgisch zijn. Een filter op een uniek klantnummer helpt veel. Dat verschil bepaalt of een database-index nuttig is.

Van query naar execution plan

Het resultaat van optimalisatie is een execution plan. Dat plan beschrijft welke stappen de database uitvoert: scans, seeks, joins, sorteringen en aggregaties.

Je kan het vaak zelf opvragen:

EXPLAIN
SELECT customer_id, SUM(amount)
FROM orders
WHERE order_date >= DATE '2026-01-01'
GROUP BY customer_id;

De syntax verschilt per database, maar het idee is hetzelfde: je kijkt niet alleen naar de SQL, je kijkt naar wat de engine ermee doet.

Waarom kiest de optimizer soms verkeerd?

De optimizer schat. Als statistieken verouderd zijn, data scheef verdeeld is of parameters sterk verschillen per run, kan die schatting verkeerd uitvallen. Een plan dat perfect is voor één klant kan traag zijn voor een klant met miljoenen orders.

Daarom helpt performancewerk vaak met drie dingen: statistieken verversen, de juiste index toevoegen of de query herschrijven zodat de optimizer duidelijker ziet wat je bedoelt.

Query optimizer versus query folding

Query folding gebeurt in tools zoals Power Query: stappen worden terugvertaald naar SQL of een andere brontaal. De query optimizer zit daarna in de database en kiest hoe die query uitgevoerd wordt.

Folding bepaalt dus waar de vraag belandt. De optimizer bepaalt hoe de database die vraag oplost.

Waar moet je op letten bij de query optimizer

  • Lees het plan, niet alleen de query. Twee nette SQL-query's kunnen totaal anders draaien.

  • Hou statistieken gezond. Verouderde statistieken geven slechte schattingen.

  • Indexen zijn input voor de optimizer. Een index die niet past bij de query wordt gewoon genegeerd.

  • Hints zijn laatste redmiddel. Een vaste hint kan vandaag helpen en morgen in de weg zitten.

Laatst Bijgewerkt: July 9, 2026 Terug naar Woordenboek
Trefwoorden
query optimizer sql execution plan database-index predicate pushdown query folding data warehouse database performance