Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique explique comment ajouter des colonnes incluses (ou non-clé) pour étendre les fonctionnalités des index non cluster dans SQL Server 2014 à l’aide de SQL Server Management Studio ou de Transact-SQL. L'inclusion de colonnes non-clés permet de créer des index non-cluster qui couvrent davantage de requêtes. En effet, les colonnes non-clés présentent les avantages suivants :
Elles peuvent contenir des types de données qui ne sont pas autorisés dans les colonnes de clés d'index.
Elles ne sont pas prises en compte par le moteur de base de données lors du calcul du nombre de colonnes clés d’index ou de la taille de la clé d’index.
Un index avec des colonnes non clés peut améliorer considérablement les performances des requêtes lorsque toutes les colonnes de la requête sont incluses dans l’index en tant que colonnes clé ou non-clé. Les gains de performances sont dus au fait que l'optimiseur de requête peut localiser toutes les valeurs des colonnes dans l'index ; l'accès aux données de table et d'index n'a pas lieu, produisant ainsi un nombre moindre d'opérations d'E/S sur le disque.
Remarque
Lorsqu’un index contient toutes les colonnes référencées par une requête, elle est généralement appelée couverture de la requête.
Dans cette rubrique
Avant de commencer :
Pour créer un index avec des colonnes non clés, utilisez :
Avant de commencer
Recommandations relatives à la conception
La conception d'index non-cluster doit être réalisée avec une clé d'index de grande taille, de sorte que seules les colonnes utilisées pour la recherche sont les colonnes clés. Définissez toutes les autres colonnes qui couvrent la requête en colonnes non clés. De cette manière, vous disposez de toutes les colonnes nécessaires pour couvrir la requête, mais la clé d'index elle-même est petite et efficace.
Incluez des colonnes non clés dans un index non cluster pour éviter de dépasser les limites de taille d’index actuelles d’un maximum de 16 colonnes clés et une taille maximale de clé d’index de 900 octets. Le moteur de base de données ne tient pas compte des colonnes non-clés lors du calcul du nombre de colonnes clés d’index ou de la taille de la clé d’index.
Limitations et restrictions
Les colonnes non clés ne peuvent être définies que sur des index non cluster.
Tous les types de données sauf
text,ntextetimagepeuvent être utilisés comme colonnes non clés.Les colonnes calculées qui sont déterministes et précises ou imprécises peuvent être des colonnes non clés. Pour plus d'informations, consultez Indexes on Computed Columns.
Les colonnes calculées dérivées des types de données
image,ntext, ettextpeuvent être des colonnes non clés tant que le type de données de la colonne calculée est autorisé en tant que colonne d'index non clé.Les colonnes non clés ne peuvent pas être supprimées d’une table, sauf si l’index de cette table est supprimé en premier.
Les colonnes non-clés ne peuvent pas être modifiées, sauf pour effectuer les opérations suivantes :
modifier la possibilité de valeur NULL de la colonne de NOT NULL à NULL ;
augmenter la longueur des colonnes
varchar,nvarcharouvarbinary.
Sécurité
Autorisations
Nécessite l’autorisation ALTER sur la table ou la vue. L’utilisateur doit être membre du rôle serveur fixe sysadmin ou des rôles de base de données fixes db_ddladmin et db_owner .
Utilisation de SQL Server Management Studio
Pour créer un index avec des colonnes non clés
Dans l’Explorateur d’objets, cliquez sur le signe plus pour développer la base de données contenant la table sur laquelle vous souhaitez créer un index avec des colonnes non clés.
Cliquez sur le signe plus pour développer le dossier Tables .
Cliquez sur le signe plus pour développer la table sur laquelle vous souhaitez créer un index avec des colonnes non clés.
Cliquez avec le bouton droit sur le dossier Index , pointez sur Nouvel index, puis sélectionnez Index non cluster....
Dans la boîte de dialogue Nouvel index , dans la page Général , entrez le nom du nouvel index dans la zone Nom de l’index .
Sous l’onglet Colonnes clés d’index , cliquez sur Ajouter....
Dans la boîte de dialogue Sélectionner des colonnes danstable_name , activez la case à cocher ou les cases à cocher de la colonne de table ou des colonnes à ajouter à l’index.
Cliquez sur OK.
Sous l’onglet Colonnes incluses , cliquez sur Ajouter....
Dans la boîte de dialogue Sélectionner des colonnesdans table_name , activez la case à cocher ou les cases à cocher de la colonne de table ou des colonnes à ajouter à l’index en tant que colonnes non clés.
Cliquez sur OK.
Dans la boîte de dialogue Nouvel index , cliquez sur OK.
Utilisation de Transact-SQL
Pour créer un index avec des colonnes non clés
Dans l' Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.
Dans la barre d'outils standard, cliquez sur Nouvelle requête.
Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.
USE AdventureWorks2012; GO -- Creates a nonclustered index on the Person.Address table with four included (nonkey) columns. -- index key column is PostalCode and the nonkey columns are -- AddressLine1, AddressLine2, City, and StateProvinceID. CREATE NONCLUSTERED INDEX IX_Address_PostalCode ON Person.Address (PostalCode) INCLUDE (AddressLine1, AddressLine2, City, StateProvinceID); GO
Pour plus d’informations, consultez CREATE INDEX (Transact-SQL).