Materialized view verversen
PostgreSQL-mechanisme: een momentopname van een queryresultaat, opgeslagen als tabel, die expliciet ververst moet worden.
Anders dan een gewone view wordt een materialized view niet automatisch bijgewerkt: REFRESH MATERIALIZED VIEW naam. Bedoeld voor zware aggregaties waarbij realtime nauwkeurigheid niet nodig is. Met de vlag CONCURRENTLY blokkeert het verversen niet (een UNIQUE-index is vereist) en kunnen gebruikers tijdens het verversen blijven selecteren. De prijs is een langere verversingstijd.
Gangbaar patroon: een nachtelijke cronjob ververst views met aggregaties over de laatste 24 uur. Het verversen maakt een nieuwe versie en wisselt die atomair om. Bij schemawijzigingen is een DROP + CREATE nodig. Modern alternatief is incrementeel onderhoud van views (extensie pg_ivm), dat alleen de wijzigingen verwerkt. Clouddatawarehouses (Snowflake, BigQuery) verversen automatisch als de brontabellen veranderen.