J'utilise le script Ola Hallengrens pour la maintenance de l'index. Avant cela, j'ai utilisé la requête suivante pour voir quels index sont les plus fragmentés:
SELECT dbschemas.[name] as 'Schema',
dbtables.[name] as 'Table',
dbindexes.[name] as 'Index',
indexstats.avg_fragmentation_in_percent,
indexstats.page_count
FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS indexstats
INNER JOIN sys.tables dbtables on dbtables.[object_id] = indexstats.[object_id]
INNER JOIN sys.schemas dbschemas on dbtables.[schema_id] = dbschemas.[schema_id]
INNER JOIN sys.indexes AS dbindexes ON dbindexes.[object_id] = indexstats.[object_id]
AND indexstats.index_id = dbindexes.index_id
ORDER BY indexstats.avg_fragmentation_in_percent desc
Dans mon cas, l'avg_fragmentation était supérieure à 70% pour 15 index et supérieure à 30% pour 28 index.
Donc, je reconstruis chaque index en utilisant la solution d'Ola Hallengren. Lorsque j'ai relancé la requête, voici le résultat:
Fragmentation supérieure à 70% pour 12 index, supérieure à 30% pour 15 index.
Je me suis dit que la raison était à cause de la page_count
, qui était inférieure à 1000 pour chacun des index qui étaient encore très fragmentés. Par exemple, l'un des indices avec un
page_count
de 967 a un pourcentage de fragmentation de 98,98% ! Il me semble qu'il vaut la peine de reconstruire cet index! Je l'ai fait, et après, la fragmentation était de 0% . De plus, un indice avec un page_count
de 132 est passé de 95% à 0%
Donc, ma question est, quelles raisons y aurait-il pour NE PAS reconstruire ces index? Une raison pourrait être que la reconstruction coûte du temps et des ressources, mais parce que les index sont petits, cela ne signifie-t-il pas que cela coûte relativement peu de ressources et qu'il serait quand même bénéfique de la reconstruire de toute façon?
Il y a plusieurs questions liées sur ce site, mais toutes répondent à la question de savoir pourquoi un index ne défragmenterait pas, ou si les index sont toujours utiles s'ils sont petits et que vous ne les défragmentez pas, alors qu'ici, la déclaration diminue la fragmentation, avec la question étant, pourquoi ne pas le faire de toute façon?