Je dispose d'un scrip T-SQL permettant de lister, parmis tous les index de la base de données, les index fragmentés et ensuite les défragmenter.
J'utilise les colonnes ScanDensity et ExtentFrag retrounée par l'instruction DBCC SHOWCONTIG. Lorsque la valeur de ScanDentity est < 92 et la valeur ExtentFrag est > 10, l'index est défragmenté.
Je joue aussi avec le taux de remplissage afin que les index souvent sollicités par des opérations d'insertion et de mise à jour ne se fragmentent pas trop vite.
Cependant, il reste un problème résiduel avec cette défragmentation. Lors la défragmentation d'un index, certaines requêtes sollicitant l'index en question provoque des blocages, allongeant ainsi la durée de défragmentation, et provoquant des problèmes lors de l'exécution des requêtes.
Existe-t'il une possibilité, lorsque la défragmentation d'un index dure trop de temps, de l'avorter ? Où alors, existe-t'il des méthodes afin d'éviter ce genre d'inconvéniants ?
D'avance, merci.
Philippe Deltour
Partager