INDEXPROPERTY (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Retourne la valeur de la propriété de l'index ou des statistiques nommés en fonction d'un numéro d'identification de table, d'un nom d'index ou de statistiques et d'un nom de propriété spécifiés. Retourne la valeur NULL pour les index XML.

Conventions de la syntaxe Transact-SQL

Syntaxe

INDEXPROPERTY ( object_ID , index_or_statistics_name , property )   

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

object_ID
Expression qui contient le numéro d'identification d'objet de la table ou de la vue indexée dont les informations de propriété d'index doivent être fournies. object_ID est de type int.

index_or_statistics_name
Expression qui contient le nom de l'index ou des statistiques dont les informations de propriété doivent être retournées. index_or_statistics_name est de type nvarchar(128).

property
Expression contenant le nom de la propriété de base de données à renvoyer. property est de type varchar(128), et peut prendre l’une des valeurs suivantes.

Notes

Sauf indication contraire, la valeur NULL est renvoyée lorsque property n’est pas un nom de propriété valide, lorsque object_ID n’est pas un ID d’objet valide, lorsque object_ID est un type d’objet qui n’est pas pris en charge pour la propriété spécifiée ou lorsque l’appelant n’est pas autorisé à consulter les métadonnées de l’objet.

Propriété Description Valeur
IndexDepth Profondeur de l'index Nombre de niveaux d'index.

NULL = une entrée ou un index XML n'est pas valide.
IndexFillFactor Valeur de facteur de remplissage utilisée lors de la création et de la dernière restauration de l'index. Facteur de remplissage
IndexID Identificateur d'index sur une table ou une vue indexée spécifiée ID de l'index
IsAutoStatistics Les statistiques ont été générées par l'option AUTO_CREATE_STATISTICS de ALTER DATABASE. 1 = Vrai

0 = False ou index XML.
IsClustered L’index est ordonné en cluster. 1 = Vrai

0 = False ou index XML.
IsDisabled L'index est désactivé. 1 = Vrai

0 = Faux

NULL = Entrée non valide.
IsFulltextKey L'index est la clé d'indexation sémantique et de texte intégral pour une table. S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures.

1 = Vrai

0 = False ou index XML.

NULL = Entrée non valide.
IsHypothetical 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 et sont gérés et utilisés par l'Assistant Paramétrage du moteur de base de données. 1 = Vrai

0 = False ou index XML

NULL = Entrée non valide.
IsPadIndex L'index spécifie l'espace à laisser ouvert sur chaque nœud intérieur. S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures.

1 = Vrai

0 = False ou index XML.
IsPageLockDisallowed Valeur de verrouillage de page définie par l'option ALLOW_PAGE_LOCKS de ALTER INDEX. S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures.

1 = le verrouillage des pages n'est pas autorisé.

0 = le verrouillage des pages est autorisé.

NULL = Entrée non valide.
IsRowLockDisallowed Valeur de verrouillage de ligne définie par l'option ALLOW_ROW_LOCKS de ALTER INDEX. S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures.

1 = le verrouillage des lignes n'est pas autorisé.

0 = le verrouillage des lignes est autorisé.

NULL = Entrée non valide.
IsStatistics index_or_statistics_name représente des statistiques créées par l’instruction CREATE STATISTICS ou par l’option AUTO_CREATE_STATISTICS de ALTER DATABASE. 1 = Vrai

0 = False ou index XML.
IsUnique L'index est unique. 1 = Vrai

0 = False ou index XML.
IsColumnstore L'index est un index columnstore optimisé en mémoire xVelocity. S’applique à : SQL Server 2012 (11.x) et versions ultérieures.

1 = Vrai

0 = Faux
IsOptimizedForSequentialKey L’optimisation des insertions de dernière page est activée dans l’index. S’applique à : SQL Server 2019 (15.x) et versions ultérieures.

1 = Vrai

0 = Faux

Types de retour

int

Exceptions

Retourne la valeur NULL en cas d'erreur ou si un appelant n'est pas autorisé à afficher l'objet.

Un utilisateur peut voir uniquement les métadonnées des éléments sécurisables qui lui appartiennent ou pour lesquels il dispose d'une autorisation. Cela signifie que les fonctions intégrées générant des métadonnées, telles que INDEXPROPERTY, peuvent retourner la valeur NULL si l'utilisateur ne dispose d'aucune autorisation sur l'objet. Pour plus d'informations, consultez Metadata Visibility Configuration.

Exemples

L’exemple suivant retourne les valeurs des propriétés IsClustered, IndexDepth et IndexFillFactor de l’index PK_Employee_BusinessEntityID de la table Employee dans la base de données AdventureWorks2022.

SELECT   
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),  
        'PK_Employee_BusinessEntityID','IsClustered')AS [Is Clustered],  
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),  
        'PK_Employee_BusinessEntityID','IndexDepth') AS [Index Depth],  
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),  
        'PK_Employee_BusinessEntityID','IndexFillFactor') AS [Fill Factor];  
  

Voici l'ensemble de résultats obtenu :

Is Clustered Index Depth Fill Factor   
------------ ----------- -----------   
1            2           0  
  
(1 row(s) affected)  

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

L’exemple suivant examine les propriétés de l’un des index sur la FactResellerSales table.

-- Uses AdventureWorks  
  
SELECT   
INDEXPROPERTY(OBJECT_ID('dbo.FactResellerSales'),  
    'ClusteredIndex_6d10fa223e5e4c1fbba087e29e16a7a2','IsClustered') AS [Is Clustered],  
INDEXPROPERTY(OBJECT_ID('dbo.FactResellerSales'),  
    'ClusteredIndex_6d10fa223e5e4c1fbba087e29e16a7a2','IsColumnstore') AS [Is Columnstore Index],  
INDEXPROPERTY(OBJECT_ID('dbo.FactResellerSales'),  
    'ClusteredIndex_6d10fa223e5e4c1fbba087e29e16a7a2','IndexFillFactor') AS [Fill Factor];  
GO  

Voir aussi

CREATE INDEX (Transact-SQL)
Statistiques
sys.indexes (Transact-SQL)
sys.index_columns (Transact-SQL)
sys.stats (Transact-SQL)
sys.stats_columns (Transact-SQL)