La bonne réponse est: IL NE COMPTE PAS.
Chaque fois que la table est suffisamment petite pour tenir dans une seule page de données de 8 Ko, le serveur SQL peut simplement charger cette page et avoir la "table entière" disponible pour faire ce dont elle a besoin.
Un cluster index est la table elle-même, donc si vous ajoutez un index cluster, vous n'êtes pas vraiment ajouter de frais généraux, vous êtes juste spécifiant une préférence de tri dans la page de données unique où réside la table . D'autre part, un index non clusterisé est un objet séparé, il ne serait donc qu'un espace perdu, car il ne serait jamais utilisé. (L'optimiseur de requête ne chargera jamais un index contenant uniquement des pointeurs vers une seule page de données, il chargera uniquement la seule page de données directement). Assurez-vous d'avoir une clé primaire, mais si vous ajoutez aussi l'index clusterisé, cela ne va pas signifier grand-chose (et ne sera probablement jamais utilisé) à moins que la table ne se développe bien au-delà d'une page .
Quel facteur de remplissage utiliseriez-vous pour un index clusterisé sur une table comme celle-ci? –
Le facteur de remplissage dépend vraiment de la nature des insertions et des mises à jour. Par exemple, si vous avez tendance à insérer des enregistrements dans l'ordre défini par votre index cluster et si vous effectuez peu ou pas de mises à jour, un facteur de remplissage élevé est préférable (même 100% si vous n'avez pas de mise à jour). De cette façon, vous analysez quelques pages de données autant que possible pour un chargement donné. Pour une table avec des inserts en désordre, ou plus que des mises à jour sporadiques, un facteur de remplissage inférieur est justifié. –
Et si les valeurs que vous voulez changer d'index souvent? Le regroupement ne diminuerait-il pas les performances? – johnnycrash