web-dev-qa-db-fra.com

Quelles sont les différences entre les pages foliaires et non foliaires?

J'ai exécuté des rapports d'utilisation d'index et j'essaie d'obtenir une définition de Leaf et Non-leaf. Il semble y avoir à la fois des insertions feuille et non feuille, des mises à jour, des suppressions, des fusions de page et des allocations de page. Je ne sais vraiment pas ce que cela signifie, ou si l'un est meilleur que l'autre.

Si quelqu'un pouvait donner un définition simple de chacun, et expliquer également pourquoi les feuilles ou non-feuilles sont importantes, ce serait apprécié!

18
meltdownmonk

Pensez-y comme ceci: les pages de niveau feuille sont la fin de la route pour la recherche de données à travers la structure B-tree d'un index. Ils contiennent les données définies dans la définition de l'index (ou dans le cas d'un index clusterisé, toutes les données de la table) et un localisateur de ligne dans la ligne de données (dans le cas d'un index non cluster).

Pages de niveau non-feuille contiennent la "feuille de route" vers les pages/données de niveau feuille en incluant la valeur clé ainsi qu'un pointeur vers une autre page de niveau non-feuille (en fonction de l'arbre B profondeur et emplacement de la page intermédiaire) ou de la page de niveau feuille résultante (page d'index pour un index non clusterisé et page de données pour un index cluster).

Edit: Voici une bonne image pour mettre une image à l'idée.

enter image description here

22
Thomas Stringer
  • leaf = Dans un index clusterisé, où se trouvent toutes les données de données de ligne. Dans un index non clusterisé, les colonnes constituant l'index, plus toutes les colonnes incluses et la clé d'index clusterisé (si la table a un index clusterisé)
  • non-leaf = nœud d'index interne (contient uniquement les données de colonne qui font partie de l'index)

Chaque index est composé d'un seul nœud racine, éventuellement de plusieurs couches de nœuds d'arbre internes intermédiaires et d'une seule couche de nœuds feuilles.

Dans un index clusterisé, les nœuds feuilles sont effectivement la table. Dans un index non clusterisé, les nœuds terminaux contiennent des données de colonne, toutes les colonnes incluses et les clés d'index cluster.

Bases de l'index SQL Server

4
Mitch Wheat