Je veux créer les meilleurs index pour chaque table de ma base de données. Existe-t-il une requête ou un outil dans SQL Server pour vous aider dans ce processus?
Je veux créer les meilleurs index pour chaque table de ma base de données. Existe-t-il une requête ou un outil dans SQL Server pour vous aider dans ce processus?
Réponses:
Oui, il existe des outils, comme le conseiller de réglage du moteur de base de données. Il est livré avec SQL Server et fait des choses assez désagréables:
L'approche appropriée pour l'optimisation d'index consiste à considérer l'ensemble de votre charge de travail sur un cycle commercial complet. Parfois, il vaut mieux se tourner vers des outils tiers que de réinventer la roue. DBSophic fait un produit gratuit appelé Qure Workload Analyzer qui, je pense, fait un bien meilleur travail que DTA - mais leur outil sous licence (Qure Workload Optimizer) est absolument phénoménal dans ce qu'il fait. L'année dernière, j'ai blogué sur le fonctionnement de l'outil lorsqu'il est intégré à SQL Sentry ).
Il existe également d'autres options, par exemple les index manquants sont signalés dans les DMV, et vous pouvez également découvrir les index dans lesquels ils sont écrits (afin qu'ils occupent de l'espace et affectent les opérations d'insertion / mise à jour / suppression) mais jamais (ou rarement ) utilisé par les requêtes des utilisateurs:
Mais ceux-ci doivent également être avertis que les DMV ne sont valides que depuis le dernier redémarrage de SQL Server et qu'ils ne couvriront pas nécessairement un cycle économique approprié (et par conséquent, il peut manquer des informations vitales
L'outil dont vous parlez s'appelle le Database Engine Tuning Advisor (DTA pour faire court). Il peut prendre un certain nombre d'entrées et donner des recommandations sur des choses comme les index manquants. Il convient de noter, cependant, que ce ne sont que des suggestions et une attention particulière devrait être prise au lieu de suivre aveuglément les recommandations du DTA.
Il convient également de noter qu'il existe des DMV intégrés pour collecter ce type d'informations: