SQL Server : Index data (cluster)
Il ne peut y avoir qu’un seul index clusterisé par table. Les données de la table sont logiquement triées dans l’ordre de l’index clusterisé, ce qui explique qu’il n’y en a qu’un seul. Autrement dit, l’index clusterisé étant un arbre-b, les feuilles de l’index sont directement les lignes dans la table.
Un index non clusterisé ne reflète pas l’ordre physique des lignes de la table.
Les deux types d’index sont construits à partir d’une clé, composée d’un certain nombre de champs. Ils permettent de retrouver rapidement une donnée à partir de tout ou partie des champs de cette clé.
Ainsi, si nous considérons une clé (A, B, C), on peut faire des recherches sur les champs (A), (A, B) et (A, B, C). Les champs sont considérés dans l’ordre de la clé ; il n’est donc pas possible de faire une recherche sur, par exemple (B, C) ou (C) avec cet index. En revanche une recherche sur (A, C) profitera aisément de l’indexation de la colonne A.
Références :
http://www.simple-talk.com/sql/learn-sql-server/sql-server-index-basics/
An Introduction to Clustered and Non-Clustered Index Data Structures
De l’importance des index en cluster
Une table peut contenir 999 index. Chaque index peut contenir 16 colonnes dont la somme des tailles n’excède pas 900 octets. Les index contiennent en plus des données des colonnes de l’index un signet (bookmark) vers les données de la table. Celui-ci peut être soit un pointeur vers une ligne, soit une des clefs de l’index clusterisé (en anglais : index clusterised).