Partager via


Défragmentation des lecteurs de disque de base de données SQL Server

Cet article fournit des conseils sur la défragmentation des lecteurs de base de données SQL Server.

Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 3195161

Les disques SQL Server doivent-ils être défragmentés au niveau de la couche du système d’exploitation ?

Cela dépend de l’état de fragmentation des lecteurs actuels. En règle générale, cela ne fait pas de mal et cela peut être utile, en supposant que vous respectiez les précautions décrites dans la section Précautions lors de la défragmentation SQL Server lecteurs de base de données. Le seul inconvénient est que vous devez arrêter SQL Server, sauf si l’outil de défragmentation prend en charge les fonctionnalités de données transactionnelles. La bonne nouvelle, c’est qu’une fois que vous avez exécuté la défragmentation, vous n’avez pas vraiment besoin de le faire à nouveau, sauf si vous avez beaucoup de croissance automatique et d’autres fichiers se déplacent sur et hors des disques. Assurez-vous que vous comprenez toutes les stratégies de mise en cache d’écriture que l’utilitaire utilise. La mise en cache par un tel utilitaire peut impliquer un cache sans batterie, ce qui peut enfreindre les exigences du protocole WAL.

Plus d’informations

Un défragmenteur de disque déplace tous les fichiers, y compris le fichier de base de données, dans des clusters contigus sur un disque dur. Cela optimise et accélère l’accès aux fichiers. À l’exception du système d’exploitation Windows NT, si vous ne défragmentez pas votre disque dur, le système d’exploitation devra peut-être se rendre à plusieurs emplacements physiques sur le disque pour récupérer le fichier de base de données, ce qui ralentit l’accès aux fichiers.

Étant donné que l’accès aux données physiques est la partie la plus coûteuse d’une demande d’E/S, la défragmentation peut fournir des gains de performances pour SQL Server et d’autres applications. Le positionnement de blocs de données proches les uns des autres réduit les exigences en matière d’opérations d’E/S.

Divers utilitaires de défragmentation sont disponibles sur le marché aujourd’hui. Certains utilitaires activent la défragmentation sur les fichiers ouverts, tandis que d’autres nécessitent une défragmentation de fichier fermé ou fonctionnent mieux lorsqu’ils sont utilisés dans des conditions de fichier fermé. En outre, certains utilitaires ont des fonctionnalités transactionnelles, tandis que d’autres ne le font pas.

Précautions lors de la défragmentation SQL Server lecteurs de base de données

Lorsque vous évaluez un utilitaire de défragmentation à utiliser avec SQL Server, assurez-vous que l’utilitaire fournit des fonctionnalités de données transactionnelles. Plus précisément, choisissez un utilitaire de défragmentation qui fournit les fonctionnalités de données transactionnelles suivantes :

  • Le secteur d’origine n’est pas considéré comme déplacé tant que le nouveau secteur n’a pas été correctement établi et que les données n’ont pas été correctement copiées.

  • L’utilitaire protège contre une défaillance du système, telle qu’une panne de courant, de manière sécurisée qui maintient les fichiers intacts logiquement et physiquement. Pour garantir l’intégrité des données, un test pull-the-plug est fortement recommandé lorsqu’un utilitaire de défragmentation s’exécute sur un fichier SQL Server.

  • Le protocole WAL (Write-Ahead Logging) nécessite la prévention des réécritures de secteur pour éviter la perte de données. L’utilitaire doit conserver l’intégrité physique du fichier tant qu’il effectue un déplacement de données. L’utilitaire doit fonctionner sur les limites de secteur de manière transactionnelle pour conserver les fichiers SQL Server intacts.

  • L’utilitaire doit fournir des mécanismes de verrouillage appropriés pour garantir que le fichier conserve une image cohérente pour toutes les modifications. Par exemple, l’utilitaire doit s’assurer que le secteur d’origine ne peut pas être modifié lorsqu’il est copié vers un nouvel emplacement. Si des modifications sont autorisées, l’utilitaire de défragmentation peut perdre l’écriture.

Les défragmenteurs de disque critiques qui ne fournissent pas ces fonctionnalités de données transactionnelles ne doivent pas être utilisés, sauf si le SQL Server instance utilisant les disques à défragmenter a été arrêté afin que vous ne défragmentiez pas les fichiers de base de données ouverts.

La défragmentation de fichier ouvert soulève plusieurs problèmes possibles que la défragmentation de fichier fermé ne fait généralement pas :

  • La défragmentation des fichiers ouverts affecte les performances. Les utilitaires de défragmentation peuvent verrouiller des sections du fichier, empêchant SQL Server d’effectuer une opération de lecture ou d’écriture. Cela peut affecter l’accès concurrentiel du serveur qui exécute SQL Server. Contactez le fabricant de l’outil de défragmentation pour découvrir comment les fichiers sont verrouillés et comment cela peut affecter SQL Server concurrence.

  • La défragmentation des fichiers ouverts peut affecter la mise en cache et l’ordre des écritures. Les utilitaires basés sur un fichier ouvert nécessitent des composants de chemin d’E/S ; ces composants ne doivent pas modifier l’ordre ou la nature prévue de l’opération d’écriture. Si les locataires du protocole d’écriture directe ou WAL sont rompus, des dommages à la base de données sont susceptibles de se produire. La base de données et tous les fichiers associés sont considérés comme une seule entité. (Cela est abordé dans de nombreux articles de la Base de connaissances Microsoft, SQL Server documentation en ligne et divers livres blancs.) Toutes les écritures doivent conserver les séquences d’ordre des écritures d’origine et les fonctionnalités d’écriture directe.

Recommandations

  • Défragmentez le volume NTFS, sauf s’il a été mis en forme, avant de créer une base de données ou de déplacer des bases de données existantes vers le volume.
  • Veillez à planifier et à dimensionner vos données SQL et vos fichiers journaux de manière appropriée lors de la première création de la base de données.
  • Créez vos journaux des transactions pré-SQL Server 2014 avec la croissance automatique à l’esprit s’ils seront utilisés.
  • Défragmentez le ou les disques sur lesquels résident vos journaux de transactions. Cela empêche la fragmentation des fichiers externes du journal des transactions. Ce problème peut se produire si vos fichiers ont connu une croissance automatique importante ou s’il ne s’agit pas d’un disque dédié qui contient de nombreuses bases de données, journaux ou autres fichiers qui ont été modifiés. Dans ce cas, les fichiers (y compris le fichier journal des transactions) peuvent être entrelacés et fragmentés.
  • Si vous défragmentez des lecteurs de base de données qui sont des disques de cluster, les disques de cluster doivent être configurés pour suspendre la surveillance de l’intégrité (également appelé mode maintenance).
  • Pour réduire la fragmentation, ne réduisez pas vos fichiers de base de données. En outre, augmentez-les manuellement dans des tailles qui réduisent l’activité de croissance.
  • Conservez vos fichiers de base de données sur des disques dédiés.
  • Effectuez une sauvegarde complète avant de défragmenter les emplacements qui contiennent SQL Server base de données et les fichiers de sauvegarde.

References