Définir les options d’index

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Cette rubrique explique comment modifier les propriétés d’un index dans SQL Server à l’aide de SQL Server Management Studio ou de Transact-SQL.

Dans cet article

Avant de commencer

Limitations et restrictions

  • Les options suivantes sont immédiatement appliquées à l’index à l’aide de la clause SET de l’instruction ALTER INDEX : ALLOW_PAGE_LOCKS, ALLOW_ROW_LOCKS, OPTIMIZE_FOR_SEQUENTIAL_KEY, IGNORE_DUP_KEY et STATISTICS_NORECOMPUTE.
  • Les options suivantes peuvent être définies lorsque vous reconstruisez un index à l'aide de ALTER INDEX REBUILD ou de CREATE INDEX WITH DROP_EXISTING : PAD_INDEX, FILLFACTOR, SORT_IN_TEMPDB, IGNORE_DUP_KEY, STATISTICS_NORECOMPUTE, ONLINE, ALLOW_ROW_LOCKS, ALLOW_PAGE_LOCKS, MAXDOP, and DROP_EXISTING (CREATE INDEX uniquement).

Sécurité

Autorisations

Nécessite une autorisation ALTER sur la table ou la vue.

Utilisation de SQL Server Management Studio

Pour modifier les propriétés d'un index dans le Concepteur de tables

  1. Dans l’Explorateur d’objets, cliquez sur le signe plus (+) pour développer la base de données qui contient la table sur laquelle vous souhaitez modifier les propriétés d’un index.
  2. Cliquez sur le signe plus (+) pour développer le dossier Tables .
  3. Cliquez avec le bouton droit sur la table sur laquelle vous voulez modifier les propriétés d’un index et sélectionnez Conception.
  4. Dans le menu Concepteur de tables , cliquez sur Index/Clés.
  5. Sélectionnez l'index à modifier. Ses propriétés apparaîtront dans la grille principale.
  6. Modifiez les paramètres de l'ensemble de propriétés pour personnaliser l'index.
  7. Cliquez sur Fermer.
  8. Dans le menu Fichier , sélectionnez Enregistrernom_table.

Pour modifier les propriétés d'un index dans l'Explorateur d'objets

  1. Dans l’Explorateur d’objets, cliquez sur le signe plus (+) pour développer la base de données qui contient la table sur laquelle vous souhaitez modifier les propriétés d’un index.
  2. Cliquez sur le signe plus (+) pour développer le dossier Tables .
  3. Cliquez sur le signe plus (+) pour développer la table sur laquelle vous souhaitez modifier les propriétés d’un index.
  4. Cliquez sur le signe plus (+) pour développer le dossier Index .
  5. Cliquez avec le bouton droit sur l’index dont vous voulez modifier les propriétés, puis sélectionnez Propriétés.
  6. Sous Sélectionner une page, sélectionnez Options.
  7. Modifiez les paramètres de l'ensemble de propriétés pour personnaliser l'index.
  8. Pour ajouter, supprimer ou déplacer une colonne d’index, sélectionnez la page Général dans la boîte de dialogue Propriétés de l’index - nom_index. Pour plus d'informations, consultez Index Properties F1 Help

Utilisation de Transact-SQL

Pour afficher les propriétés de tous les index d'une table

L’exemple suivant affiche les propriétés de tous les index dans une table de la base de données AdventureWorks.

SELECT i.name AS index_name
   , i.type_desc
   , i.is_unique
   , ds.type_desc AS filegroup_or_partition_scheme
   , ds.name AS filegroup_or_partition_scheme_name
   , i.ignore_dup_key
   , i.is_primary_key
   , i.is_unique_constraint
   , i.fill_factor
   , i.is_padded
   , i.is_disabled
   , i.allow_row_locks
   , i.allow_page_locks
   , i.has_filter
   , i.filter_definition
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('HumanResources.Employee')
;

Pour définir les propriétés d'un index

Les exemples suivants définissent les propriétés des index dans la base de données AdventureWorks.

ALTER INDEX AK_SalesOrderHeader_SalesOrderNumber ON
    Sales.SalesOrderHeader
SET (
    STATISTICS_NORECOMPUTE = ON,
    IGNORE_DUP_KEY = ON,
    ALLOW_PAGE_LOCKS = ON
    )
;
ALTER INDEX ALL ON Production.Product
REBUILD WITH 
   (
       FILLFACTOR = 80
       , SORT_IN_TEMPDB = ON
       , STATISTICS_NORECOMPUTE = ON
   )
;

Pour plus d’informations, consultez ALTER INDEX (Transact-SQL).