Comment tester les performances de votre database

J'ai besoin de tester les performances des index pour certaines tables de ma database.

Après avoir exécuté ma requête avec des index ou sans eux, j'utilise toujours ce code;

SELECT * FROM sys.dm_exec_query_optimizer_info; 

Et je reçois des détails sur ma requête.

Mon problème est:

 using sys.dm_exec_query_optimizer 

Les détails de ma requête changent constamment, ce qui rend difficile la compréhension. Quelle est la meilleure solution?

Connaissez-vous un moyen ou des pratiques exemplaires?

Vous devez apprendre ce que l'optimiseur de requêtes vous dit. Que datatables changent est bon; cela signifie que les choses se comportent différemment selon que vous avez ou non des index. Cependant, il n'y a pas de normalisation sur la façon dont les informations de l'optimiseur sont présentées – chaque SGBD le fait différemment. Si vous allez interpréter datatables, vous devez le comprendre.

Regarder le plan de requête est important. En fin de count, ainsi de mesurer la performance réelle. Cela dépend en partie de la raison pour laquelle vous regardez l'indexing. Si vous rencontrez un problème de performance perçu, il est clair que vous devez vous assurer que le problème est résolu par l'index ou les index que vous ajoutez. Vous devez également vous assurer que le coût d'ajout des index sur les opérations de maintenance (insertion, suppression, mise à jour des opérations) n'est pas intolérable – vous n'avez pas ajouté trop d'index. Vous devrez peut-être également prendre en count l'utilisation de l'espace disque. Est-il possible de consacrer autant d'espace disque à autant d'index?

Sans plus d'informations spécifiques sur votre SGBD ou les requêtes particulières, il est difficile de donner des conseils plus spécifiques.