Figure 1.0 – Capture d’écran d’une analyse Diskeeper
Ainsi, lorsque Diskeeper s’exécute, il agit pour défragmenter les fichiers et journaux de base de données. De ce
fait, le fichier se présente sous la forme d’un segment continu et non en plusieurs parties éparpillées. De plus,
Diskeeper défragmente l’espace libre. Ainsi, les fichiers ou journaux peuvent augmenter en taille avec une
fragmentation faible ou nulle. Mais cela ne dure pas éternellement. Finalement, la fragmentation pose problème et
les fichiers et journaux de base de données doivent encore être défragmentés. Idéalement, la défragmentation doit
s’effectuer en temps réel pour éviter qu’une fragmentation inutile ne se produise et n’altère les performances.
Voici maintenant un point auquel vous n’avez certainement pas encore pensé. Quels sont les effets de la
fragmentation des fichiers sur la reconstruction de vos index SQL Server ? En d’autres termes, si vous n’effectuez
pas la défragmentation des fichiers mais exécutez une défragmentation interne des index/enregistrements, cela
présente-t-il des inconvénients ?
C’est en effet possible. Les fichiers étant fragmentés, SQL Server nécessite beaucoup plus de temps et d’E/S pour
reconstruire ses index sur des fichiers fragmentés que sur des fichiers contigus. Avant d’exécuter un processus de
défragmentation interne, il est donc conseillé d’exécuter d’abord un processus de défragmentation des fichiers.
Ainsi, vous réduisez le temps nécessaire à la reconstruction de vos index et la charge en E/S sur votre serveur
pendant cette opération.
Alors que la fragmentation des fichiers et journaux de base de données SQL Server peut dégrader les performances de
SQL Server, n’oubliez pas que l’outil accède à d’autres fichiers, tels que les fichiers exécutables SQL Server ou bien les
fichiers d'indexation de texte intégral si vous utilisez cette fonction. Ainsi, n’envisagez pas seulement de défragmenter les
fichiers et journaux de base de données SQL Server mais aussi tous les fichiers du serveur SQL Server.
Lors d’un processus de défragmentation Diskeeper, le
système d’exploitation gère lui-même tous les
transferts de fichiers. En réalité, le code du système
d’exploitation, coécrit à l'origine par Diskeeper
Corporation, privilégie la sécurité en déterminant ce qui
peut être défragmenté ou pas. Les bases de données
SQL Server (par exemple, LDF, MDF) peuvent être
défragmentées sans aucun risque. Puisque Diskeeper
envoie des requêtes au système d’exploitation (via
une API) pour transférer des fichiers, s’il rencontre
des fichiers qui ne peuvent pas être transférés en
toute sécurité, il les ignore simplement sans aucune
erreur ou autre problème.
Mais, comment procédez-vous pour déterminer si les
fichiers de SQL Server sont fragmentés ? Heureusement, cela est facile. Dans le cadre des fonctionnalités de Diskeeper,
vous pouvez exécuter une analyse de fragmentation pour connaître l’état de fragmentation de vos fichiers SQL Server.
Tout comme pour la défragmentation, cela peut s'effectuer pendant le fonctionnement de SQL Server.
Comme vous pouvez l’imaginer, il s'avère difficile de recommander un délai spécifique au terme duquel exécuter la
défragmentation des fichiers, puisque chaque base de données est différente et que la fragmentation se produit à divers
rythmes. Une fonctionnalité Diskeeper dynamique permet de défragmenter en temps réel grâce à une technologie
exclusive appelée InvisiTasking™. Diskeeper ne défragmente les fichiers ou l’espace libre que si cela s’avère nécessaire.
De plus, InvisiTasking garantit une défragmentation transparente sans répercussion sur les ressources de SQL Server et
des autres applications en cours d’exécution. Enfin, vous pouvez toujours restreindre les périodes d’exécution de
Diskeeper si vous le souhaitez.
De nombreux administrateurs de bases de données qui achètent Diskeeper commencent par évaluer le produit
lorsqu’ils rencontrent des problèmes dont l’origine avérée réside dans des disques très fragmentés.
En général, c’est le cas si quelque chose tourne au ralenti. Lors de cette évaluation, ils utilisent des outils de
gestion et de surveillance des systèmes pour isoler précisément l’origine du problème. Cela est d’autant plus
vrai sur des serveurs SQL Server, car une fraction de seconde peut s’élever à des milliers de dollars en termes
de perte de revenus.