sys.indexes (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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.
name 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 cluster (B-tree)

2 = rowstore non cluster (B-tree)

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 NON CLUSTER : les index DE HACHAGE NON CLUSTER 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 le tas, l’index non filtré ou les autorisations insuffisantes sur la table.
compression_delay int > 0 = Délai de compression de l’index Columnstore spécifié en minutes.

NULL = Le délai de compression rowgroup de l’index Columnstore est géré automatiquement.
suppress_dup_key_messages bit 1 = L’index est configuré pour supprimer les messages de clé en double 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 (à compter 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 la dernière page est activée dans l’index.

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

S’applique à : SQL Server (à compter 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)