Partager via


sys.indexes (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Base de données SQL dans Microsoft Fabric

Contient une ligne par index ou segment d'un objet tabulaire, comme une table, une vue, ou une fonction table.

Nom de la colonne Type de données Descriptif
object_id Int ID de l'objet auquel appartient cet index.
nom sysname Nom de l'index. name est unique uniquement dans l’objet.

NULL = Segment
index_id Int Identificateur de l'index. index_id est unique uniquement dans l’objet.

0 = Segment de mémoire

1 = Index cluster

> 1 = Index non cluster
type tinyint Type de l'index :

0 = Segment de mémoire

1 = Rowstore en cluster (arbre B)

2 = Rowstore non cluster (arbre B)

3 = XML

4 = Spatial

5 = Index columnstore cluster. S’applique à : SQL Server 2014 (12.x) et versions ultérieures.

6 = Index columnstore non cluster. S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

7 = Index de hachage non cluster. S’applique à : SQL Server 2014 (12.x) et versions ultérieures.
9 = JSON S’applique à : SQL Server 2025 (17.x) Preview
type_desc nvarchar(60) Description du type d'index :

TAS

GROUPÉ

NONCLUSTERED

XML

SPATIAL

CLUSTERED COLUMNSTORE - S’applique à : SQL Server 2014 (12.x) et versions ultérieures.

NONCLUSTERED COLUMNSTORE - S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

HACHAGE NONCLUSTERED : les index DE HACHAGE NONCLUSTERED sont pris en charge uniquement sur les tables optimisées en mémoire. La sys.hash_indexes vue affiche les index de hachage actuels et les propriétés de hachage. Pour plus d’informations, consultez sys.hash_indexes (Transact-SQL). S’applique à : SQL Server 2014 (12.x) et versions ultérieures.
JSON s’applique à : SQL Server 2025 (17.x) Preview
is_unique mors 1 = L'index est unique.

0 = L'index n'est pas unique.

Toujours 0 pour des index columnstore cluster.
data_space_id Int ID de l'espace de données de cet index. L'espace de données est soit un groupe de fichiers, soit un schéma de partition.

0 = object_id est une fonction table ou un index en mémoire.
ignore_dup_key mors 1 = IGNORE_DUP_KEY est ON.

0 = IGNORE_DUP_KEY est OFF.
is_primary_key mors 1 = L'index fait partie d'une contrainte PRIMARY KEY.

Toujours 0 pour des index columnstore cluster.
is_unique_constraint mors 1 = L'index fait partie d'une contrainte UNIQUE.

Toujours 0 pour des index columnstore cluster.
fill_factor tinyint > 0 = pourcentage FILLFACTOR utilisé lors de la création ou de la reconstruction de l’index.

0 = Valeur par défaut

Toujours 0 pour des index columnstore cluster.
is_padded mors 1 = PADINDEX est ON.

0 = PADINDEX est OFF.

Toujours 0 pour des index columnstore cluster.
is_disabled mors 1 = L'index est désactivé.

0 = L'index n'est pas désactivé.
is_hypothetical mors 1 = L'index est hypothétique et ne peut être utilisé directement comme un chemin d'accès aux données. Les index hypothétiques conservent des statistiques au niveau des colonnes.

0 = L'index n'est pas hypothétique.
allow_row_locks mors 1 = Index autorisant les verrous de ligne

0 = Index n'autorisant pas les verrous de ligne

Toujours 0 pour des index columnstore cluster.
allow_page_locks mors 1 = Index autorisant les verrous de page

0 = Index n'autorisant pas les verrous de page

Toujours 0 pour des index columnstore cluster.
has_filter mors 1 = Index disposant d'un filtre et contenant uniquement les lignes qui satisfont la définition du filtre.

0 = Index ne disposant pas de filtre.
filter_definition nvarchar(max) Expression pour le sous-ensemble de lignes inclus dans l'index filtré.

NULL pour les segments de mémoire, index non filtrés ou autorisations insuffisantes sur la table.
compression_delay Int > 0 = Délai de compression d’index Columnstore spécifié en minutes.

NULL = Délai de compression de rowgroup d’index Columnstore est géré automatiquement.
suppress_dup_key_messages mors 1 = L’index est configuré pour supprimer les messages de clé dupliqués pendant une opération de reconstruction d’index.

0 = L’index n’est pas configuré pour supprimer les messages de clé en double pendant une opération de reconstruction d’index.

S’applique à : SQL Server (à partir de SQL Server 2017 (14.x)), Azure SQL Database et Azure SQL Managed Instance
auto_created mors 1 = L’index a été créé par le réglage automatique.

0 = L’index a été créé par l’utilisateur.

S’applique à : Azure SQL Database
optimize_for_sequential_key mors 1 = L’optimisation de l’insertion de dernière page est activée.

0 = Valeur par défaut. L’index a désactivé l’optimisation de l’insertion de dernière page.

S’applique à : SQL Server (à partir de SQL Server 2019 (15.x)), Azure SQL Database et Azure SQL Managed Instance

autorisations

La visibilité des métadonnées dans les affichages catalogue est limitée aux éléments sécurisables qu'un utilisateur détient ou pour lesquels des autorisations lui ont été accordées. Pour plus d'informations, consultez Metadata Visibility Configuration.

Exemples

L’exemple suivant retourne tous les index de la table Production.Product dans la base de données AdventureWorks2022.

SELECT i.name AS index_name  
    ,i.type_desc  
    ,is_unique  
    ,ds.type_desc AS filegroup_or_partition_scheme  
    ,ds.name AS filegroup_or_partition_scheme_name  
    ,ignore_dup_key  
    ,is_primary_key  
    ,is_unique_constraint  
    ,fill_factor  
    ,is_padded  
    ,is_disabled  
    ,allow_row_locks  
    ,allow_page_locks  
FROM sys.indexes AS i  
INNER JOIN sys.data_spaces AS ds ON i.data_space_id = ds.data_space_id  
WHERE is_hypothetical = 0 AND i.index_id <> 0   
AND i.object_id = OBJECT_ID('Production.Product');  
GO  

Étapes suivantes

Vues de catalogue d'objets (Transact-SQL)
Affichages catalogue (Transact-SQL)
sys.index_columns (Transact-SQL)
sys.xml_indexes (Transact-SQL)
sys.objects (Transact-SQL)
sys.key_constraints (Transact-SQL)
sys.filegroups (Transact-SQL)
sys.partition_schemes (Transact-SQL)
Questions fréquentes sur l'interrogation des catalogues système de SQL Server
In-Memory OLTP (optimisation en mémoire)