sys.sysindexes (Transact-SQL)

S’applique à :SQL Server

Contient une ligne pour chaque index et chaque table de la base de données active. Cette vue ne prend pas en charge les index XML. Les tables et les index partitionnés ne sont pas entièrement pris en charge dans cette vue ; utilisez plutôt la vue catalogue sys.indexes .

Important

Cette table système SQL Server 2000 est incluse sous la forme d'une vue pour la compatibilité descendante. Nous vous recommandons d'utiliser les vues système SQL Server actuelle. Pour trouver la ou les vues système équivalentes, consultez Mappage de tables système à des vues système (Transact-SQL). Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

Nom de la colonne Type de données Description
id int Identificateur de la table à laquelle l'index appartient.
statut int Informations sur l'état du système.

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
first binary(6) Pointeur vers la première page ou la page racine.

Inutilisé quand indid = 0.

NULL = L’index est partitionné quand indid> 1.

NULL = La table est partitionnée lorsque indid a la valeur 0 ou 1.
indid smallint Identificateur de l'index :

0 = Segment de mémoire

1 = Index cluster

>1 = Index non cluster
root binary(6) Pour indid>= 1, root est le pointeur vers la page racine.

Inutilisé quand indid = 0.

NULL = L’index est partitionné quand indid> 1.

NULL = La table est partitionnée lorsque indid a la valeur 0 ou 1.
minlen smallint Taille minimale d'une ligne.
keycnt smallint Nombre de clés.
groupid smallint Identificateur du groupe de fichiers sur lequel l'objet a été créé.

NULL = L’index est partitionné quand indid> 1.

NULL = La table est partitionnée lorsque indid a la valeur 0 ou 1.
dpages int Pour indid = 0 ou indid = 1, dpages est le nombre de pages de données utilisées.

Pour indid> 1, dpages est le nombre de pages d’index utilisées.

0 = L’index est partitionné quand indid> 1.

0 = La table est partitionnée lorsque indid a la valeur 0 ou 1.

Ne fournit pas de résultats précis en cas de dépassement de capacité des données sur des lignes.
reserved int Pour indid = 0 ou indid = 1, reserved est le nombre de pages allouées pour l’ensemble des index et des données de table.

Pour indid> 1, reserved est le nombre de pages allouées à l’index.

0 = L’index est partitionné quand indid> 1.

0 = La table est partitionnée lorsque indid a la valeur 0 ou 1.

Ne fournit pas de résultats précis en cas de dépassement de capacité des données sur des lignes.
utilisés int Pour indid = 0 ou indid = 1, utilisé est le nombre total de pages utilisées pour toutes les données d’index et de table.

Pour indid> 1, utilisé est le nombre de pages utilisées pour l’index.

0 = L’index est partitionné quand indid> 1.

0 = La table est partitionnée lorsque indid a la valeur 0 ou 1.

Ne fournit pas de résultats précis en cas de dépassement de capacité des données sur des lignes.
rowcnt bigint Nombre de lignes au niveau des données basé sur indid = 0 et indid = 1.

0 = L’index est partitionné quand indid> 1.

0 = La table est partitionnée lorsque indid a la valeur 0 ou 1.
rowmodctr int Compte le nombre total de lignes insérées, supprimées ou mises à jour depuis la dernière mise à jour des statistiques de la table.

0 = L’index est partitionné quand indid> 1.

0 = La table est partitionnée lorsque indid a la valeur 0 ou 1.

Dans SQL Server 2005 (9.x) et versions ultérieures, rowmodctr n’est pas entièrement compatible avec les versions antérieures. Pour plus d'informations, consultez la section Notes.
reserved3 int Retourne 0.

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
reserved4 int Retourne 0.

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
xmaxlen smallint Taille maximale d'une ligne
maxirow smallint Taille maximale d'une ligne d'index non-feuille.

Dans SQL Server 2005 (9.x) et versions ultérieures, maxirow n’est pas entièrement compatible avec les versions antérieures.
OrigFillFactor tinyint Valeur d'origine du taux de remplissage utilisé lors de la création de l'index. Cette valeur n'est pas conservée ; elle peut toutefois s'avérer utile si vous devez recréer un index et si vous avez oublié le taux de remplissage utilisé.
StatVersion tinyint Retourne 0.

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
réservé2 int Retourne 0.

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
FirstIAM binary(6) NULL = L'index est partitionné.

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
impid smallint Indicateur d'implémentation de l'index.

Retourne 0.

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
lockflags smallint Utilisé pour limiter les granularités de verrouillage d'un index. Par exemple, une table de recherche qui est essentiellement accessible en lecture seule peut être configurée pour poser uniquement des verrous de niveau table, de façon à minimiser les coûts de verrouillage.
pgmodctr int Retourne 0.

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
keys varbinary(816) Liste des identificateurs de colonne pour les colonnes qui constituent la clé d'index.

Renvoie NULL.

Pour afficher les colonnes de clé d’index, utilisez sys.sysindexkeys.
name sysname Nom de l'index ou de la statistique. Retourne NULL lorsque l’indid = 0. Modifiez votre application pour rechercher le nom d'un segment de mémoire de valeur NULL.
statblob image Statistiques sur les objets binaires volumineux (BLOB).

Renvoie NULL.
maxlen int Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
rows int Nombre de lignes au niveau des données en fonction de l’indid = 0 et de l’indid = 1, et la valeur est répétée pour l’indid>1.

Remarques

Les colonnes définies comme réservées ne doivent pas être utilisées.

Les colonnes dpages, réservées et utilisées ne retournent pas de résultats précis si la table ou l’index contient des données dans l’unité d’allocation ROW_OVERFLOW. De plus, les nombres de pages de chaque index sont suivis séparément et ne sont pas agrégés pour la table de base. Pour afficher le nombre de pages, utilisez les vues catalogue sys.allocation_units ou sys.partitions , ou la vue de gestion dynamique sys.dm_db_partition_stats.

Dans les SQL Server 2000 et versions antérieures, le moteur de base de données a géré les compteurs de modification au niveau des lignes. De tels compteurs sont maintenant gérés au niveau colonne. Par conséquent, la colonne rowmodctr est calculée et produit des résultats similaires aux résultats des versions antérieures, mais qui ne sont pas exacts.

Si vous utilisez la valeur dans rowmodctr pour déterminer quand mettre à jour les statistiques, envisagez les solutions suivantes :

  • Ne rien faire. La nouvelle valeur rowmodctr vous aidera fréquemment à déterminer quand mettre à jour les statistiques, car le comportement est relativement proche des résultats des versions antérieures.

  • Utiliser AUTO_UPDATE_STATISTICS. Pour plus d’informations, consultez Statistiques.

  • Utiliser une limite de temps pour déterminer à quel moment mettre à jour les statistiques. (par exemple, toutes les heures, chaque jour ou chaque semaine).

  • Utiliser les informations de niveau application pour déterminer à quel moment mettre à jour les statistiques. Par exemple, chaque fois que la valeur maximale d’une colonne d’identité change de plus de 10 000 ou chaque fois qu’une opération d’insertion en bloc est effectuée.

Voir aussi

Affichages catalogue (Transact-SQL)
Mappage des tables système avec les vues du système (Transact-SQL)
sys.indexes (Transact-SQL)