> Tech > Peut on éviter que les index se fragmentent ?

Peut on éviter que les index se fragmentent ?

Tech - Par iTPro - Publié le 24 juin 2010
email

En définitive la question qui se pose est la suivante : peut on éviter que les index se fragmentent au cours de la vie des données? La réponse est oui, mais un oui imparfait, un oui de compromis. La solution consiste à créer des index dont les pages ne sont

Peut on éviter que les index se fragmentent ?

pas pleines, c’est à dire que l’on réserve quelques octets pour y stocker les lignes nouvelles et celles dont la valeur change. Cela se fait à la création de l’index en spécifiant le facteur de remplissage5 des pages de l’index.

Avec un facteur de remplissage de 80 % on permet à l’index de ne pas se détériorer si le volume des nouvelles données et celles à déplacer ne dépasse pas 20 % du volume actuel. En d’autres termes, cela signifie que votre index sera plus gros de 25 % donc que les temps de lecture seront allongés du quart par rapport à un index optimal… Ce n’est franchement pas énorme comparé aux chiffres que l’on peut obtenir si l’index est très fragmenté ! Cependant méfiez vous des chiffres : chaque page de l’index va bénéficier de 20 % de vide, mais vos nouvelles données peuvent avoir une distribution très hétérogène. Cela ne veut donc pas dire qu’avec un fill factor de 80 % une mise à jour de 20 % des données ne provoquera aucune fragmentation de l’index.

Je dirais même qu’il n’y a statistiquement aucune chance pour que cela se produise. Et tant qu’à faire de rester dans les statistiques vous constaterez que lorsque votre base est petite et toute récente, alors un facteur de remplissage de 80 % peut être très insuffisant pour assurer un bon service dans une période donnée, alors qu’avec ce même fill factor et dans la même période ce peut être très largement suffisant avec quelques années d’exploitation car le volume des données maniées est généralement stable alors qu’un pourcentage accordé à une grande table conduit forcément à réserver de grand espaces.

En définitive, s’il fallait être très rigoureux il faudrait un fill factor évolutif régulièrement réajusté en fonction du vieillissement de la base, du volume de données mis à jour quotidiennement. Autrement dit réajuster le facteur de remplissage des index en fonction de chaque index, de chaque table et de l’accroissement du volume de données.

Téléchargez gratuitement cette ressource

Protection des Données : 10 Best Practices

Protection des Données : 10 Best Practices

Le TOP 10 des meilleures pratiques, processus et solutions de sécurité pour mettre en œuvre une protection efficace des données et limiter au maximum les répercutions d’une violation de données.

Tech - Par iTPro - Publié le 24 juin 2010