Bonjour,


Citation Envoyé par chaplin Voir le message
La réorganisation consiste à faire quoi au juste, si l'index est équilibré ?
Le fait qu’un index DB2 soit équilibré signifie que les pages feuilles (le plus bas niveau) sont toutes à la même distance de la racine, mais cela est indépendant du phénomène de désorganisation de l'index.

Dans l’image ci-dessous (cf. la discussion avec master_och), on a un arbre à trois niveaux, le 1er niveau correspond à la racine (un seul enregistrement), le 3e niveau correspond au niveau feuille : on voit 3 feuilles, au sein desquelles les clés sont sagement rangées selon leur séquence ascendante. La 1re feuille (enregistrement physique) contient les clés 0003 à 0967, la 2e feuille contient les clés 2002 à 4000, etc. En outre, la séquence de l'ensemble des clés est totalement respectée : la 1re feuille, appelons-la F1, contient un pointeur vers la 2e feuille (F2), laquelle contient un pointeur vers la 3e (F3), etc., ce qui fait que la clé 2002 suit logiquement la clé 0967, etc., indépendamment de l'emplacement physique des feuilles sur le disque (ce chaînage des feuilles fait que l’arbre B est en fait un B+). Maintenant, la feuille F2 peut être physiquement à des années-lumière de la feuille F1 (pour des raisons diverses et variées DB2 n’a pas pu stocker F2 au voisinage de F1), si bien que lors d’un traitement de masse ordonné sur les clés, DB2 devra effectuer un I/O (accès physique) supplémentaire pour passer de F1 à F2, alors que si F2 avait été au voisinage de F1, les deux feuilles auraient été accédées dans le même I/O. Si ce phénomène se répète trop souvent, la durée des traitements de masse est dégradée. On sait mesurer cette dégradation grâce aux statistiques fournies par le catalogue et au besoin, comme je l’ai déjà expliqué, on peut être amené à effectuer une réorganisation de l’index, consistant à ordonner les feuilles physiquement de façon contiguë, en gelant un pourcentage de place (cela vaut bien entendu pour les nœuds intermédiaires) pour que les INSERT et UPDATE futurs ne désorganisent l’index que le plus tard possible (cf. paramètres PCTFREE et FREEPAGE).