Le pré-calcul des agrégats
Calculer d'avance ce que les requêtes redemandent : tables d'agrégats et vues matérialisées, treillis des regroupements, ROLLUP, CUBE et GROUPING SETS, mesures qui se recombinent ou non, rafraîchissement.
- 30 cartes
- 6 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Les chiffres
- Mises en situation
- Comprendre
Quelques cartes du deck
Table d'agrégats : de quoi s'agit-il ?
Voir la réponse
Table qui stocke des résultats déjà sommés ou comptés à un niveau grossier (ventes par région et par mois), pour éviter de relire les faits détaillés.
Une requête qui demande un total par région lit quelques centaines de lignes au lieu de millions. Il faut la tenir à jour et décider du niveau qu'elle garde.
Quels regroupements cette requête calcule-t-elle ?
```sql
SELECT region, mois, SUM(montant)
FROM ventes
GROUP BY ROLLUP (region, mois);`- (region, mois), (region) et le total général
- (region, mois), (mois) et le total général, en retirant les colonnes depuis la gauche
- (region, mois), (region), (mois) et le total général
- (region) et (mois) seulement
Voir la réponse
(region, mois), (region) et le total général
ROLLUP retire les colonnes depuis la droite : après (region, mois) vient (region), puis le total. Le regroupement par mois seul, qui n'appartient à aucune hiérarchie, ne vient qu'avec CUBE.
Un treillis de … dimensions contient 2 puissance 3 soit … regroupements, du plus fin au total général.
Voir la réponse
Un treillis de trois dimensions contient 2 puissance 3 soit huit regroupements, du plus fin au total général.
Chaque dimension est soit dans le regroupement, soit absente : deux choix par dimension, d'où 2 puissance n.
Vue matérialisée : de quoi s'agit-il ?
Voir la réponse
Requête dont le résultat est stocké physiquement, et que le moteur peut relire sans la recalculer jusqu'à ce qu'on la rafraîchisse.
Une vue ordinaire se recalcule à chaque lecture ; la vue matérialisée est rapide mais peut être périmée. Dans PostgreSQL, REFRESH MATERIALIZED VIEW la recalcule en entier.