SQL Index clusterisés, uniques et triés


Exemple

Les index peuvent avoir plusieurs caractéristiques qui peuvent être définies lors de la création ou en modifiant les index existants.

CREATE CLUSTERED INDEX ix_clust_employee_id ON Employees(EmployeeId, Email);  

L'instruction SQL ci-dessus crée un nouvel index clusterisé sur Employees. Les index clusterisés sont des index qui déterminent la structure réelle de la table. la table elle-même est triée pour correspondre à la structure de l'index. Cela signifie qu'il peut y avoir au plus un index cluster sur une table. Si un index clusterisé existe déjà sur la table, l'instruction ci-dessus échouera. (Les tables sans index clusterisés sont également appelées heaps.)

CREATE UNIQUE INDEX uq_customers_email ON Customers(Email);

Cela créera un index unique pour la colonne Email dans la table Customers . Cet index, associé à l’accélération des requêtes comme un index normal, forcera également chaque adresse e-mail de cette colonne à être unique. Si une ligne est insérée ou mise à jour avec une valeur de messagerie non unique, l'insertion ou la mise à jour échouera par défaut.

CREATE UNIQUE INDEX ix_eid_desc ON Customers(EmployeeID);

Cela crée un index sur les clients qui crée également une contrainte de table que l'ID employé doit être unique. (Cela échouera si la colonne n'est pas unique actuellement - dans ce cas, s'il y a des employés qui partagent un ID.)

CREATE INDEX ix_eid_desc ON Customers(EmployeeID Desc);

Cela crée un index trié par ordre décroissant. Par défaut, les index (dans MSSQL Server, au moins) sont ascendants, mais cela peut être modifié.