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:

  1. Raggruppamento di restrizioni
  2. Commutatività di e
    • a.
    • b.
  3. Anticipazioni di rispetto a
    • a.
    • b.
    • c.
  4. Raggruppamento di proiezioni
  5. Eliminazione di proiezioni superflue
  6. 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