DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 2755960 - Dernière mise à jour: jeudi 27 septembre 2012 - Version: 1.0

 

Résumé

Risque de diminuer les performances des requêtes SQL si les index sont lourdement fragmentés dans l'instance de base de données de Microsoft SQL Server. Vous pouvez utiliser la fonction système sys.dm_db_index_physical_stats pour détecter la fragmentation des index pour les cas suivants :
  • Un index spécifique
  • Tous les index sur une table
  • Tous les index sur une vue indexée
  • Tous les index dans une base de données
  • Tous les index de toutes les bases de données
Pour déterminer la fragmentation est supérieure à 30 pour cent, exécutez le script de requête SQL suivant :

SELECT OBJECT_NAME(i.OBJECT_ID) AS TableName, OBJECT_NAME(i.OBJECT_ID) AS TableName, i.name AS IndexName,i.name AS IndexName, indexstats.avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'DETAILED') indexstats INNER JOIN sys.indexes i ON i.OBJECT_ID = indexstats.OBJECT_ID WHERE indexstats.avg_fragmentation_in_percent > 30 AND i.index_id = indexstats.index_id
Pour déterminer la meilleure méthode pour corriger la fragmentation, reportez-vous aux instructions suivantes :
  • Utilisez le ALTER INDEX REBUILD avec des (ONLINE = ON) * commande pour les objets dont pourcentage de fragmentation moyenne est supérieure à 30 pour cent.
  • Utilisez la commande ALTER INDEX REORGANIZE pour les objets dont pourcentage de fragmentation moyenne est comprise entre 5 et 30 %.

Réduire ce tableauAgrandir ce tableau
valeur avg_fragmentation_in_percentInstruction corrective
> 5 % et< ==""> ALTER INDEX REORGANIZE
> 30 %ALTER INDEX REBUILD AVEC (ONLINE = ON) *
Notes:
  • Ces valeurs fournissent une à titre indicatif pour déterminer le point auquel vous devez basculer entre ALTER INDEX REORGANIZE et ALTER INDEX REBUILD. Toutefois, les valeurs réelles peuvent varier d'un cas à l'autre. Vous devez faire des essais pour déterminer le meilleur seuil pour votre environnement.
  • Très faibles niveaux de fragmentation (moins de cinq pour cent) ne doivent pas être adressées par ces commandes. C'est parce que l'avantage de supprimer une petite quantité de fragmentation est généralement considérablement compensé par le coût de la réorganisation ou la reconstruction des index.

Plus d'informations

Pour plus d'informations sur la façon de réorganiser et de reconstruire les index, consultez le site Web Microsoft suivant :
Comment réorganiser et reconstruire des index (http://technet.microsoft.com/en-us/library/ms189858.aspx)

Le tableau suivant fournit plus d'informations sur les produits ou les outils de vérification automatique pour cette condition sur votre instance de SQL Server et sur les versions du produit SQL Server par rapport à laquelle la règle est évaluée.
Réduire ce tableauAgrandir ce tableau
Logiciel de règleTitre de la règleDescription de la règleVersions du produit par rapport à laquelle la règle est évaluée
Conseiller de System CenterFragmentations de hautes SQL Server peuvent rétrograder les performances des requêtesSystem Center Advisor vérifie la fragmentation logique à l'aide de la avg_fragmentation_in_percent valeur dans Sys.dm_db_index_physical_stats pour chaque index d'instance de base de données de SQL Server. Si la fragmentation moyenne pour l'index ou le segment est supérieure à cinq pour cent, cette alerte est générée. Suivez les instructions de cet article pour résoudre les problèmes liés aux fragmentations d'indice élevé.SQL Server 2008

SQL Server 2008 R2

SQL Server 2012

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Web
Mots-clés : 
kbsurveynew kbhowto kbexpertiseadvanced kbmt KB2755960 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 2755960  (http://support.microsoft.com/kb/2755960/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store