IT-lexicon › Databases › MATERIALIZED CTE

MATERIALIZED CTE

Databases Svenska → Bijgewerkt: 2026-10-03

Een PostgreSQL-trefwoord (WITH ... AS MATERIALIZED / NOT MATERIALIZED) dat bepaalt of een CTE eenmalig wordt berekend en gebufferd, of in de hoofdquery wordt ingevoegd zodat de planner over de grens heen kan optimaliseren.

Achtergrond: vóór PostgreSQL 12 was elke CTE een “optimization fence”: hij werd altijd apart gematerialiseerd, waardoor de planner filters niet kon doorschuiven en de query veel trager kon zijn dan een gelijkwaardige subquery. Vanaf v12 wordt een CTE die één keer wordt gebruikt standaard geïnlined (NOT MATERIALIZED), wat vaak sneller is. MATERIALIZED dwingt het oude gedrag af: handig bij een dure CTE die meermaals wordt hergebruikt (één keer berekenen), of om de planner bewust te laten stoppen met herberekenen. Vuistregel: laat de standaard staan; gebruik MATERIALIZED gericht bij dure hergebruikte CTE's. Een concreet instrument bij het tunen van analytische queries.

← Terug naar het lexicon