Mysql
 sql >> Base de données >  >> RDS >> Mysql

SQL SERVER 2016 - Comparaison des plans d'exécution

Les nouveaux outils apportent de nouvelles fonctionnalités et parfois celles-ci sont profondément ancrées dans le produit que nous pouvons facilement les manquer. Et SQL Server 2016 n'est pas différent. Après avoir installé le CTP, j'ai été agréablement surpris de voir cet ajout pour aider nos DBA qui effectuent des activités de réglage des performances et de réglage des requêtes.

Alors de quoi je parle ? Pensez à un scénario dans lequel vous effectuez une sorte de test dans votre environnement QA. Vous semblez dépanner un scénario de production et avez constaté que ce scénario fonctionnait très bien dans votre environnement de test. Bien que vous ayez transmis les données de la base de données de production au serveur d'assurance qualité de test il y a moins d'un mois, vous êtes toujours déconcerté par la question :pourquoi cette différence ?

La prochaine exigence que tout le monde regarde est de commencer à comparer les plans d'exécution entre votre environnement de production et de test pour la même requête. Certains des plans d'exécution sur un serveur de production peuvent parfois s'exécuter sur des pages et il est difficile de trouver visuellement la différence.

SQL Server 2016 – Comparaison des forfaits

Si vous disposez du plan d'exécution de votre environnement de production, ouvrez-le dans SQL Server 2016 Management Studio et cliquez avec le bouton droit pour obtenir l'option suivante :

Vous pouvez voir qu'il s'agit d'un ajout intéressant. Le "Comparer Showplan" doit être sélectionné. Maintenant, sélectionnez le plan qui a été généré à partir de votre environnement de test. Cela amènera les deux plans d'exécution sur une vue côte à côte, comme indiqué ci-dessous. Regardez la couleur violette sur les nœuds.

Cela représente le fait que les deux nœuds sont identiques mais présentent des différences dans certaines propriétés. Maintenant, c'est à nous de faire un clic droit et d'amener l'onglet des propriétés.

Ici, nous pouvons aller de l'avant et comparer chacune des propriétés de nœud pour trouver où se trouve la discrimination entre les plans. Ce sont des capacités impressionnantes ajoutées dans la nouvelle version.

Je suis sûr que vous trouverez cette fonctionnalité très utile dans les exercices d'optimisation des requêtes dans vos environnements. Cela dit, une chose que j'ai vue intéressante est que si vous prenez un "plan d'exécution réel" en direct et que vous essayez ensuite de le comparer avec un fichier .sqlplan enregistré, une erreur s'affichera comme indiqué ci-dessous :

Faites-moi savoir si vous utiliseriez cette fonctionnalité et si vous l'avez déjà utilisée. Quelles améliorations souhaiteriez-vous que cet opérateur de comparaison ait ? J'aimerais apprendre de vous à coup sûr.