Notre serveur SQL vit sur un SAN. Il contient des dizaines de bases de données OLTP, certaines avec plusieurs tables contenant plus de 1 million d'enregistrements.
Nous exécutons chaque semaine les scripts de maintenance d'index d'Ola Hallengren , et cela dure plusieurs heures à chaque fois. En fonction du seuil de fragmentation, le script réorganisera ou réindexera un index. Nous avons observé que lors de la réindexation, les fichiers journaux deviennent énormes, ce qui entraîne une consommation excessive de bande passante lors de l'envoi des journaux.
Vient ensuite un article de Brent Ozar dans lequel il dit de ne plus se soucier des index SQL :
Vos disques durs sont partagés avec d'autres serveurs qui font également des demandes de disques en même temps, donc les disques vont toujours sauter partout pour obtenir des données. Défragmenter vos index n'est qu'un travail chargé de sens.
Googler cette question conduit à des opinions divergentes, la plupart appuyées par des arguments qui semblent trop brefs ou faibles. Notre plan provisoire est d'ajuster le seuil de fragmentation dans notre script de maintenance afin qu'il se réorganise beaucoup plus souvent qu'il ne se réindexe.
Quel est le verdict final? Vaut-il la peine de défragmenter les index SQL sur un SAN compte tenu des charges associées à l'exécution des travaux de maintenance hebdomadaires?
Idéalement, vous devez réorganiser / réindexer UNIQUEMENT les index qui nécessitent une attention, sinon vous gaspillez des ressources et vous risquez de causer d'autres problèmes.
Vous devez établir une référence de performances et chaque fois que vous apportez des modifications, comparez la modification des performances à la référence pour déterminer si votre modification mérite d'être mise en œuvre.
la source
D'accord, la question concerne les index de base de données, qui sont une construction d'un fichier ou d'un ensemble de fichiers. La lecture des réponses ci-dessus amènerait une personne à croire que nous parlons de fragmentation au niveau du disque et non des index à l'intérieur d'un fichier. Ces sujets totalement séparés.
L'approche myope ici est que les performances lors de la récupération des données à l'intérieur et la base de données OLTP s'améliorent si les index sont fragmentés ou reconstruits. La réponse est oui! Cependant, il est important de noter que la fragmentation du disque est également un facteur.
"Coût" le plus bas dans l'ensemble? Faites votre maintenance de base de données. Deuxième coût le plus bas, détachez la base de données, déplacez-la ailleurs, reformatez vos disques et suivez les meilleures pratiques pour l'alignement des partitions de disque http://msdn.microsoft.com/en-us/library/dd758814.aspx . Enfin, utilisez un défragmenteur avancé tiers comme Diskkeeper.
Gardez à l'esprit que ceci est UNIQUEMENT recommandé pour le stockage de type NTFS (par exemple, Windows OS) et ce n'est pas une approbation pour aucun produit et je ne suis pas affilié à Condusiv Technologies ou à ses filiales.
la source