Published on

August 19, 2019

Comprendiendo las sugerencias de consulta de SQL Server

Cuando se trata de optimizar las consultas de SQL Server, existen diversas técnicas y opciones disponibles. Una de esas opciones es el uso de sugerencias de consulta. Sin embargo, como experto en SQL Server, no soy muy fanático de utilizar sugerencias de consulta. De hecho, durante mi Evaluación Integral de Rendimiento de la Base de Datos, siempre aconsejo no utilizar ninguna sugerencia de consulta.

Permítanme explicar por qué. Las sugerencias de consulta son instrucciones específicas dadas al optimizador de consultas de SQL Server, guiándolo sobre cómo ejecutar una consulta. Aunque pueden parecer una solución rápida para mejorar el rendimiento de la consulta, a menudo pueden tener consecuencias no deseadas y llevar a planes de ejecución subóptimos.

Una sugerencia de consulta sobre la que a menudo me preguntan es ENABLE_PARALLEL_PLAN_PREFERENCE. Esta sugerencia se utiliza para forzar a SQL Server a utilizar paralelismo en las consultas. Sin embargo, antes de considerar el uso de esta sugerencia, es crucial tener una comprensión adecuada de cómo funciona el ecosistema de su servidor.

Echemos un vistazo a un ejemplo de consulta:

SELECT i.AccountsPersonID, i.BillToCustomerID
FROM Sales.Invoices i
WHERE i.BillToCustomerID = 803
ORDER BY i.ConfirmedDeliveryTime

En su plan de ejecución predeterminado, esta consulta utiliza un solo procesador. Sin embargo, si agregamos la sugerencia ENABLE_PARALLEL_PLAN_PREFERENCE, la consulta se ejecutará en paralelo en múltiples CPUs:

SELECT i.AccountsPersonID, i.BillToCustomerID
FROM Sales.Invoices i
WHERE i.BillToCustomerID = 803
ORDER BY i.ConfirmedDeliveryTime
OPTION(USE HINT('ENABLE_PARALLEL_PLAN_PREFERENCE'))

Es importante tener en cuenta que habilitar el paralelismo no garantiza necesariamente una operación más rápida o mejor. De hecho, existe una buena posibilidad de que el plan paralelo sea aún más costoso que un plan de un solo procesador.

En lugar de depender de sugerencias de consulta, recomiendo explorar otras técnicas y opciones de optimización. Comprender los factores subyacentes que afectan el rendimiento de la consulta, como los índices, las estadísticas y la configuración del servidor, a menudo puede llevar a una ejecución de consulta más efectiva y eficiente.

Si estás interesado en aprender más sobre la optimización del rendimiento de SQL Server, aquí tienes algunos artículos de blog relevantes:

Recuerda, optimizar las consultas de SQL Server es una tarea compleja que requiere una comprensión profunda de los mecanismos subyacentes. En lugar de depender de sugerencias de consulta, invierte tiempo en comprender los fundamentos y explorar técnicas alternativas de optimización.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.