Algoritmo di Query Optimization
Equivalenza delle espressioni
Due espressioni sono equivalenti se producono lo stesso risultato qualunque sia l’istanza attuale della base di dati, questo è un concetto molto importante nei dbms in quanto questi strumenti cercano di eseguire continuamente delle query equivalenti ma meno “costose”, un esempio potrebbe essere la query detta push selection ovvero: queste 2 sono due query equivalenti ma quella a sinistra è molto più efficiente

Regole per la query optimization
La regola generale per le ottimizzare le query è: Anticipare l’applicazione delle proiezioni e delle restrizioni rispetto al prodotto in modo da ridurre la dimensione delle tabelle a cui applicare il prodotto. Andando in specifico le regole da seguire sono queste:
- Raggruppamento di restrizioni
- Commutatività di e
- a.
- b.
- Anticipazioni di rispetto a
- a.
- b.
- c.
- Raggruppamento di proiezioni
- Eliminazione di proiezioni superflue
- Anticipazione della rispetto a
Algoritmo
Per anticipare la selezione applicare le seguenti regole:
- Si anticipa rispetto a usando la 2.a
- Si raggruppano le restrizioni usando la 1
- Si anticipa l’esecuzione di su usando la 3
- Si eliminano le proiezioni superflue usando la 5
- Si raggruppano le proiezioni mediante la regola 4
- Si anticipa l’esecuzione delle proiezioni rispetto al prodotto usando ripetutamente la regola 2