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.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Les chiffres
  5. Mises en situation
  6. 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.