Afficher les index d'une table

Afficher les index d’une table dans SQL Server

Si vous utilisez SQL Server comme serveur de base de données, il est très important de comprendre et de savoir quels sont les index utilisés dans chacune des tables de votre SI.

Qu’est ce que les index ?

En SQL, les index sont une des solutions pour pouvoir accéder plus rapidement aux données.

Un index permet de rechercher plus rapidement les données en commençant la recherche sur la colonne de l’index. S’il trouve, SQL Server saura plus rapidement où se trouve les enregistrements concernés par notre requête.

Requête qui liste les index d’une table

Voici une petite requête qui va nous permettre de lister les colonnes de tous les index d’une table bien précise de notre base de Données.

En effet, ce bout de code à garder à proximité, va nous permettre de savoir si on a un index sur telle ou telle colonne de notre table pour ainsi optimiser les temps de chargement.

SELECT Tab.name TABLE_NAME,
          Idx.name INDEX_NAME,
          Col.name COLUMN_NAME,
          'PRIMARY_KEY' = case Idx.is_primary_key When '0' Then '0' Else '-1' End,
          'UNIQUE'      = case Idx.is_unique      When '0' Then '0' Else '-1' End
FROM sys.tables                Tab
      Inner join sys.indexes  Idx    On Tab.object_id    = Idx.object_id
      INNER JOIN sys.index_columns IdxCol ON IdxCol.object_id = Idx.object_id AND IdxCol.index_id  = Idx.index_id
     INNER JOIN sys.columns       Col    ON Col.object_id    = IdxCol.object_id And Col.column_id    = IdxCol.column_id
WHERE Tab.type_desc = 'USER_TABLE'
AND Tab.name = 'MA_TABLE_NAME'
ORDER BY TABLE_NAME, INDEX_NAME,COLUMN_NAME

Le résultat de cette requête :

  • Nom de la table
  • Le nom de l’index
  • Nom de la colonne sur laquelle existe l’index
  • S’agit-il d’une clé primaire ?
  • index unique ou non ?

Vous avez remarqué qu’on a ajouté une condition avec le nom de la table, mais si on souhaite avoir tous les index de la base de données, il suffit d’enlever la condition :

AND Tab.name = 'MA_TABLE_NAME'

Aussi, vous pouvez avoir d’autres astuces SQL Server en vous rendant sur nos articles de la catégorie SQL Server.

Enfin, si vous souhaitez en savoir plus sur un sujet précis de SQL Server, merci de nous laisser un commentaire et on traitera du sujet dans nos prochains articles.

Laisser un commentaire, votre avis nous intéresse