Estimateur de coût index & jointure

Estimations de coût façon System R : parcours séquentiel contre index B+ (groupé ou non), et jointures nested-loop, block nested-loop, hash et sort-merge — avec I/O pages et un terme CPU simple.

À propos de cet outil

Comparer les accès et les jointures d’égalité par E/S de pages estimées plus un poids CPU réglable. Modèle pédagogique, pas des temps mesurés ni un plan de moteur SQL. Modifier une entrée efface son résultat ; relancer ensuite. Onglet et entrées sont conservés après navigation ou rechargement.

Sélection. N représente les lignes, P les pages, la sélectivité une fraction de 0 à 1. L’égalité unique suppose une ligne et désactive la sélectivité. Scan : P E/S et N × CPU. La hauteur H inclut la première feuille : E/S = H−1 + max(1, ceil(résultats / clés par feuille)) + lectures des données. Index groupé : ceil(résultats × P / N), au plus P ; sinon une lecture par résultat. CPU = (1,2 × résultats + H) × poids. Les paramètres désactivés sont ignorés.

Jointures. R reste externe, S interne. Sortie ≈ lignes R × lignes S × sélectivité. Boucles par page : Pᵣ + PᵣPₛ. Par blocs : Pᵣ + ceil(Pᵣ/(B−2))Pₛ. L’index de S coûte H lectures par ligne externe plus une par ligne produite ; les feuilles de plage supplémentaires sont ignorées. Le hachage construit la plus petite relation dans B−2 pages, avec B−1 partitions uniformes. Chaque niveau ajoute lecture et écriture des deux relations ; aucune asymétrie des clés simulée.

Tri et CPU. Le tri matérialisé crée ceil(P/B) séries, puis fusionne B−1 séries à la fois. Chaque passe coûte 2P ; la jointure lit ensuite les deux relations triées. Aucune fusion de la dernière passe avec la jointure, relecture des groupes de doublons ou écriture du résultat. Le CPU est un poids heuristique : comparaisons pour les boucles, parcours et résultats pour l’index, deux fois les lignes d’entrée pour le hachage, n log₂ n par relation pour le tri. Toutes les jointures comptent aussi les lignes produites. Unités abstraites équivalentes à une E/S de page, pas des millisecondes.

Comptages 1–10⁹, tampon 3–10⁹, hauteur 1–8, CPU 0–10⁶. Estimations flottantes, parfois fractionnaires ou approximatives pour de grandes cardinalités. Pas de cache, histogrammes, parallélisme ou recherche d’ordre. Graphique facultatif. Références : tri Berkeley CS186 et jointures.

Les saisies brutes, même invalides ou inachevées, sont enregistrées localement jusqu’à 100000 caractères sérialisés. Au-delà, la copie précédente est conservée ; téléchargez les saisies avant de recharger ou de quitter la page. La navigation interne conserve le brouillon courant. Un rechargement restaure les saisies enregistrées et attend Estimer. Les petites estimations non nulles et les coûts très élevés utilisent la notation scientifique ; ces estimations ne sont pas des comptes exacts.