Comment savoir quelles recommandations d'index SQL Server 2005 mettre en œuvre, le cas échéant?

Translate

Nous sommes en train de mettre à niveau l'une de nos instances SQL Server de 2000 à 2005. J'ai installé le tableau de bord des performances (http://www.microsoft.com/downloads/details.aspx?FamilyId=1d3a4a0d-7e0c-4730-8204-e419218c1efc&displaylang=en) pour accéder à certains rapports de haut niveau. L'un des rapports affiche des index manquants (recommandés). Je pense que c'est basé sur une vue système qui est maintenue par l'optimiseur de requêtes.

Ma question est de savoir quelle est la meilleure façon de déterminer quand prendre une recommandation d'index. Je sais que cela n'a pas de sens d'appliquer toutes les suggestions de l'optimiseur. Je vois beaucoup de conseils qui disent essentiellement d'essayer l'index et de le conserver si les performances s'améliorent et de l'abandonner si les performances se dégradent ou restent les mêmes. Je me demande s'il existe une meilleure façon de prendre la décision et quelles sont les meilleures pratiques qui existent à ce sujet.

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

Première chose à savoir:

Lorsque vous effectuez une mise à niveau de 2000 à 2005 (en utilisant détacher et attacher), assurez-vous que:

  1. Définir la compatibilité sur 90
  2. Reconstruire les index
  3. Exécutez les statistiques de mise à jour avec une analyse complète

Si vous ne le faites pas, vous obtiendrez des plans sous-optimaux.

SI la table est principalement en écriture, vous voulez le moins d'index possible SI la table est utilisée pour de nombreuses requêtes de lecture, vous devez vous assurer que la clause WHERE est couverte par des index.

La source
Stu
Translate

Le conseil que vous avez est juste. Essayez-les tous, un par un.

Il n'y a AUCUN substitut aux tests en matière de performances. À moins que vous ne le prouviez, vous n'avez rien fait.

La source
Translate

Votre meilleur pour rechercher le type de requêtes le plus courant qui se produisent sur votre base de données et créer des index basés sur cette recherche.

Par exemple, s'il y a une table qui stocke les visites de sites Web, qui est écrite très très souvent mais à peine lue. Ensuite, n'indexez pas la table à l'écart.

Si toutefois vous avez une liste d'utilisateurs auxquels l'accès est plus fréquent qu'il n'est écrit, je créerais d'abord un index clusterisé sur la colonne qui accède le plus, généralement la clé primaire. Je créerais ensuite un index sur les colonnes de recherche courantes, et celles qui sont utilisées dans l'ordre des clauses.

La source