sql >> Base de Datos >  >> RDS >> Mysql

SQL SERVER 2016 – Comparación de planes de ejecución

Las nuevas herramientas brindan nuevas capacidades y, a veces, estas están profundamente arraigadas en el producto y fácilmente podemos pasarlas por alto. Y SQL Server 2016 no es diferente. Después de instalar el CTP, me sorprendió gratamente ver esta adición para ayudar a nuestros DBA que están realizando actividades de ajuste de rendimiento y ajuste de consultas.

Entonces, ¿de qué estoy hablando? Piense en un escenario en el que esté realizando algún tipo de prueba en su entorno de control de calidad. Parece que está solucionando problemas en un escenario de producción y descubrió que ese mismo escenario funciona muy bien en su entorno de prueba. Aunque ha llevado los datos de la base de datos de producción al servidor de control de calidad de prueba hace menos de un mes, todavía está desconcertado con la pregunta:¿por qué esta diferencia?

El siguiente requisito que todos observan es comenzar a comparar los planes de ejecución entre su entorno de producción y de prueba para la misma consulta. Algunos de los planes de ejecución en un servidor de producción pueden ejecutarse en páginas a veces y es difícil encontrar diferencias visualmente.

SQL Server 2016:comparación de planes

Si tiene el plan de ejecución de su entorno de producción, continúe y ábralo en SQL Server 2016 Management Studio y haga clic derecho para obtener la siguiente opción:

Puedes ver que es una adición interesante. Se debe seleccionar "Comparar Showplan". Ahora, seleccione el plan que se generó a partir de su entorno de prueba. Esto hará que ambos planes de ejecución se vean uno al lado del otro, como se muestra a continuación. Mire el color púrpura en los nodos.

Esto representa el hecho de que ambos nodos son iguales pero tienen algunas diferencias en algunas propiedades. Ahora depende de nosotros hacer clic derecho y abrir la pestaña de propiedades.

Aquí podemos continuar y comparar cada una de las propiedades de los nodos para encontrar dónde está la discriminación entre los planes. Estas son increíbles capacidades añadidas en la nueva versión.

Estoy seguro de que encontrará esta función de gran utilidad en los ejercicios de ajuste de consultas en sus entornos. Habiendo dicho eso, una cosa que he visto interesante es que, si toma un "Plan de ejecución real" en vivo y luego intenta compararlo con un archivo .sqlplan guardado, aparecerá un error como se muestra a continuación:

Dígame si usaría esta función y si la ha usado. ¿Cuáles son algunas de las mejoras que desearía que tuviera este operador de comparación? Seguro que me gustaría aprender de ti.