98 votes

SQL Server - Quand utiliser un index clusterisé ou non clusterisé?

Je connais les principales différences entre les index en cluster et les non en cluster et je comprends leur fonctionnement. Je comprends comment les index en cluster et non en cluster améliorent les performances de lecture. Mais une chose que je ne suis pas sûre, c’est que c’est la raison pour laquelle je choisirais l’une sur l’autre.

Par exemple: si une table ne possède pas d’index en cluster, faut-il créer un index non-en cluster et quel est l’avantage de le faire

118voto

marc_s Points 321990

Je veux juste mis un mot d'avertissement: veuillez très soigneusement choisir votre index cluster! Tous les "réguliers" tableau de données doit avoir un index cluster, puisque le fait d'avoir un index cluster, en effet, la vitesse de beaucoup d'opérations - oui, accélérer, même les insertions et les suppressions! Mais seulement si vous choisissez un bon index cluster.

C'est le plus répliqué structure des données dans votre base de données SQL Server. La clé de cluster sera la part de chacun et de tous les index non cluster sur votre table, trop.

Vous devez utiliser une extrême prudence lors de la sélection d'une clé de cluster - il devrait être:

  • étroit (4 octets idéal)

  • unique (c'est le "pointeur de ligne", après tout. Si vous ne le faites pas unique SQL Server va le faire pour vous dans le fond, vous coûter quelques octets pour chaque entrée, multiplié par le nombre de lignes et le nombre de non-cluster indices vous ont - cela peut être très coûteux!)

  • statique (ne jamais changer si possible)

  • idéalement croissante , donc vous ne finirez pas avec d'horribles de l'indice de fragmentation (un GUID est tout l'opposé d'une bonne clé de cluster - pour cette raison en particulier,

  • il doit être non nullable et idéalement aussi de largeur fixe - varchar(250) fait une mauvaise clé de cluster

Autre chose, faut vraiment être de deuxième et troisième niveau de l'importance à l'origine de ces points ....

Voir certains de Kimberly Tripp (La Reine de l'Indexation) des messages de blog sur le sujet de tout ce qu'elle a écrit dans son blog est absolument inestimable de le lire, à le digérer - vivre!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X