Types d'index : cluster, non-cluster, et index columnstore

8.1.1 Index cluster (Clustered Index)

Un index cluster (ou clustered index) détermine l'ordre physique des lignes dans une table. Cela signifie que la table est triée en fonction de cet index, et chaque table ne peut avoir qu'un seul index cluster.

  • Avantages : L'accès aux données est rapide lorsqu'une requête utilise une colonne indexée de manière clusterisée, car les données sont directement disponibles.

  • Inconvénients : Les insertions et les mises à jour peuvent être plus lentes, car la base de données doit réorganiser l'ordre physique des lignes.

Création d'un index cluster :

CREATE CLUSTERED INDEX idx_EmployeID
ON Employes (EmployeID);

8.1.2 Index non-cluster (Non-Clustered Index)

Un index non-cluster ne change pas l'ordre physique des données dans la table. Il stocke une copie triée de la colonne indexée et pointe vers la ligne correspondante dans la table.

  • Avantages : Utile pour accélérer les requêtes sur des colonnes fréquemment recherchées sans modifier la structure physique de la table.

  • Inconvénients : Utilise plus d'espace et peut être plus lent que l'index cluster pour certaines requêtes, car il nécessite une étape supplémentaire pour trouver les données.

Création d'un index non-cluster :

CREATE NONCLUSTERED INDEX idx_Nom
ON Employes (Nom);

8.1.3 Index columnstore

Les index columnstore sont conçus pour les charges de travail analytiques, en stockant les données par colonnes au lieu de lignes, ce qui réduit considérablement l'espace disque et accélère les requêtes sur de grandes quantités de données.

  • Avantages : Idéal pour les requêtes analytiques sur de grandes tables, car il compresse efficacement les données et réduit le nombre de lectures disque nécessaires.

  • Inconvénients : Moins adapté pour les transactions fréquentes ou les opérations de mise à jour.

Création d'un index columnstore :

CREATE CLUSTERED COLUMNSTORE INDEX idx_Columnstore
ON Employes;

Last updated