Question

J'ai une table de calendrier avec environ 2K lignes. Ceci est une table de consultation, et sera utilisé dans de nombreuses jointures.

Les colonnes sont

CalendarId (PK, Clustered)
DateTimeValue
IsWeekDay
IsWeekend
IsHoliday

Ma question est la suivante: je veux avoir un index sur DatetimeValue

.

Quand dois-je créer cet indice?

En d'autres termes, la taille d'une table ne doivent être avant de mettre un index sur elle?

Était-ce utile?

La solution

Vous ajoutez l'index que vous créez la table, avant l'insertion de la première rangée. L'indexation fait partie de la conception du modèle de données, pas une réflexion après coup, lorsque les données commencent à montrer des problèmes.

Un index manquant sur une table vide est toujours un index manquant.

Autres conseils

Vous voulez vous assurer que vous avez un index sur les choses que vous aviez besoin, vous ne voulez pas « attendre » jusqu'à ce qu'il devienne un problème .... en ce moment-là vous avez le temps perdu.

Mais en même temps, ne pas créer un index juste pour le plaisir de créer un, assurez-vous qu'il est logique de l'application.

Par exemple, en fonction de votre opération, je pense que vous pourriez être « plus efficace » à se regrouper sur le DatetimeValue, comme je devine que vous avez 1 entrée par jour.

Ajoutez toujours l'index pour commencer. Une table est jamais trop petit pour avoir un indice. Un index devient un problème lorsque vous avez une très grande table, comme insertions / modifications / suppressions peuvent ralentir.

Je suppose que « DatetimeValue » serait la clé naturelle dans ce tableau? Il devrait avoir un index unique du début.

En ce qui concerne les autres domaines, il est peu probable que les indices sur IsWeekDay ou IsWeekend seront utilisées par l'optimiseur, car ils ont une faible sélectivité (IsWeekDay retourne 71% des lignes).

Modifier A noter également que c'est essentiellement une table de lecture seule. Vous pouvez ajouter tous les indices que vous aimez car il ne jamais affecter les performances en écriture une fois tous les quelques années lorsque vous ajoutez une autre année de valeur des données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top