Défragmenter les index de vos tables
Un index est un objet complémentaire (mais non indispensable) à la base de données permettant d'indexer certaines colonnes dans le but d'améliorer l'accès aux données par Microsoft SQL Server, au même titre qu'un index dans un livre ne vous est pas indispensable mais vous permet souvent d'économiser du temps lorsque vous recherchez une partie spécifique de ce dernier...
La fragmentation intervient lorsque des index possèdent des pages dans lesquelles l'organisation logique (reposant sur la valeur de la clé) ne correspond pas à l'organisation physique dans le fichier de données. Une fragmentation importante des index peut diminuer les performances des requêtes et ralentir la vitesse de réponse de votre application.
Connaître le taux de fragmentation table par table
Étape 1 : Sélection de la base de données
- Tapez le nom de la base contenant la table
USE [Nom de la base de données];
Étape 2 : Vérification de la fragmentation
- Modifiez le nom de la table à vérifier (ici TIERS)
DBCC SHOWCONTIG('dbo.TIERS') WITH FAST, TABLERESULTS, ALL_INDEXES, NO_INFOMSGS;
Défragmenter une table
Étape 1 : Sélection de la base de données
- Tapez le nom de la base contenant la table
USE [Nom de la base de données];
Étape 2 : Défragmentation
- Modifiez le nom de la table à défragmenter (ici TIERS)
ALTER INDEX ALL ON dbo.TIERS REBUILD WITH (FILLFACTOR = 80, SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = ON);
Script complet à exécuter étape par étape
/* Étape 1 : Sélection de la base de données */
USE [Nom de la base de données];
/* Étape 2 : Vérification de la fragmentation */
DBCC SHOWCONTIG ('dbo.TIERS') WITH FAST, TABLERESULTS, ALL_INDEXES, NO_INFOMSGS;
/* Étape 3 : Sélection de la base de données */
USE [Nom de la base de données];
/* Étape 4 : Défragmentation */
ALTER INDEX ALL ON dbo.TIERS REBUILD WITH (FILLFACTOR = 80, SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = ON);
Pour en savoir plus
(https://msdn.microsoft.com/fr-fr/library/ms189858%28v=sql.120%29.aspx)
Effectuez une défragmentation régulière des index pour maintenir les performances optimales de votre base de données.
Le paramètre FILLFACTOR = 80 laisse 20% d'espace libre dans chaque page pour les futures insertions.
Défragmenter les index de vos tables - Guide de maintenance