sys.indexes (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

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 Description
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.
type_desc nvarchar(60) Description du type d'index :

HEAP

CLUSTERED

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.
is_unique bit 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 bit 1 = IGNORE_DUP_KEY est ON.

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

Toujours 0 pour des index columnstore cluster.
is_unique_constraint bit 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 bit 1 = PADINDEX est ON.

0 = PADINDEX est OFF.

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

0 = L'index n'est pas désactivé.
is_hypothetical bit 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 bit 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 bit 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 bit 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 bit 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 bit 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 bit 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)