Je connais les principales différences entre les index clusterisés et non groupés et je comprends comment ils fonctionnent réellement. Je comprends comment les index clusterisés et non clusterisés améliorent les performances de lecture. Mais une chose dont je ne suis pas sûr, c'est quelles seraient les raisons pour lesquelles je choisirais l'un plutôt que l'autre.
Par exemple: si une table n'a pas d'index clusterisé, faut-il créer un index non clusterisé et quel est l'avantage de faire
Réponses:
Je veux juste mettre un mot d'avertissement: veuillez choisir très soigneusement votre index cluster! Chaque table de données "régulière" doit avoir un index clusterisé, car avoir un index clusterisé accélère en effet beaucoup d'opérations - oui, accélère , même les insertions et les suppressions! Mais seulement si vous choisissez un bon index clusterisé.
Il s'agit de la structure de données la plus répliquée de votre base de données SQL Server. La clé de clustering fera également partie de chaque index non cluster de votre table.
Vous devez être extrêmement prudent lorsque vous choisissez une clé de clustering - elle doit être:
étroit (4 octets idéal)
unique (c'est le "pointeur de ligne" après tout. Si vous ne le rendez pas unique, SQL Server le fera pour vous en arrière-plan, ce qui vous coûtera quelques octets pour chaque entrée multiplié par le nombre de lignes et le nombre d'index non clusterisés vous avez - cela peut être très coûteux!)
statique (ne jamais changer - si possible)
idéalement en constante augmentation pour ne pas vous retrouver avec une horrible fragmentation d'index (un GUID est le contraire d'une bonne clé de clustering - pour cette raison particulière)
il devrait être non nullable et idéalement également à largeur fixe - a
varchar(250)
fait une très mauvaise clé de clusteringTout le reste devrait vraiment être le deuxième et le troisième niveau d'importance derrière ces points ...
Voir quelques articles de blog de Kimberly Tripp ( La reine de l'indexation ) sur le sujet - tout ce qu'elle a écrit dans son blog est absolument inestimable - lisez-le, digérez-le - en direct!
la source
non clustered
index fait pour nous? quelle est son importance ..?