In caso di funzioni aggregate come
SELECT AVG(eta)
FROM Sommelier S
Tutti i record vengono scanditi e vengono mantenute informazioni aggiuntive
Funzione | Informazione mantenuta |
---|---|
SUM | totale dei valori stimati |
AVG | totale e numero di valori |
MIN | minimo dei valori |
MAX | massimo dei valori |
COUNT | numero dei valori |
Group by #
In caso di raggruppamenti come:
SELECT S.livello, MIN(età)
FROM Sommelier S
GROUP BY S.livello
È necessario partizionare i record e calcolare le funzioni di aggregazione per ogni record, ci sono 3 principali strategie:
Group by per mezzo di sorting #
Una delle possibilità e quella di sfruttare tecniche di ordinamento come quelle viste per la proiezione , va sommato il costo di calcolo delle funzioni aggregate
Group by per mezzo di indici #
In caso di indici sugli attributi di group by e di calcolo delle funzioni non e necessario accedere al file dati
💡 in caso di
href="/tecnologie_basi_dati/b+tree">b+tree
se gli attributi di raggruppamento sono un prefisso della chiave si può utilizzare l’indice per accedere al file dati in maniera ordinata
Group by usando hashing #
Si costruisce una tabella di hash in memoria centrale in maniera analoga al caso della proiezione