Compartir a través de


Procesamiento de consultas inteligente en bases de datos SQL

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de datos de Azure SQL de Microsoft Fabric

La familia de características de procesamiento de consultas inteligentes incluye características con un gran impacto que mejoran el rendimiento de las cargas de trabajo existentes con un esfuerzo de implementación mínimo. En el gráfico siguiente se detalla la familia de características de IQP y cuándo se introdujeron por primera vez para SQL Server. Todas las características de IQP están disponibles en Azure SQL Managed Instance y Azure SQL Database. Algunas características dependen del nivel de compatibilidad de la base de datos.

Diagrama de la familia de características de procesamiento inteligente de consultas y cuándo se incorporaron por primera vez a SQL Server.

Vea este vídeo para obtener información general sobre el procesamiento de consultas inteligentes:

 

Para obtener demostraciones y código de ejemplo de características de procesamiento de consultas inteligentes (IQP) en GitHub, visite https://aka.ms/IQPDemos.

Puede hacer que las cargas de trabajo sean aptas automáticamente para el procesamiento de consultas inteligentes si habilita el nivel de compatibilidad de base de datos pertinente en la base de datos. Puede establecerlo con Transact-SQL. Por ejemplo:

ALTER DATABASE [WideWorldImportersDW] SET COMPATIBILITY_LEVEL = 160;

En la siguiente tabla se detallan todas las características de procesamiento de consultas inteligentes, así como cualquier requisito que tengan en cuanto a nivel de compatibilidad de base de datos. Para obtener detalles completos sobre todas las características de IQP, incluidas las notas de la versión y descripciones más detalladas, consulte Características de procesamiento de consultas inteligentes en detalle.

Características de IQP para Azure SQL Database y SQL Server 2025 Preview

Característica de procesamiento de consultas inteligentes Compatible con Azure SQL Database Compatible con LA versión preliminar de SQL Server 2025 (17.x) Descripción
Protección optimizada de Halloween No Sí, a partir de la versión preliminar de SQL Server 2025 (17.x) con el nivel de compatibilidad 170 Reducir el tempdb consumo de espacio y mejorar el rendimiento de las consultas sin usar un almacenamiento temporal para la protección de Halloween.
Optimización opcional del plan de parámetros (OPPO) No Sí, a partir de la versión preliminar de SQL Server 2025 (17.x) con el nivel de compatibilidad 170 Aprovecha la infraestructura de optimización de planes adaptativos (Multiplan) que se introdujo con la mejora de Optimización de Planes Sensibles a Parámetros (PSPO), que genera varios planes a partir de una sola instrucción. La característica puede elegir un plan más óptimo en tiempo de ejecución en función de si un parámetro es NULL OR NOT NULL, lo que mejora el rendimiento de las consultas que, de lo contrario, podrían tener un rendimiento poco óptimo para estos patrones de consulta.
Retroalimentación de estimación de cardinalidad (CE) para expresiones No Sí, a partir de la versión preliminar de SQL Server 2025 (17.x) con el nivel de compatibilidad 160 Amplía los comentarios de CE para mejorar las estimaciones de cardinalidad para expresiones repetidas a lo largo de las consultas mediante el aprendizaje de las ejecuciones anteriores y aplicando automáticamente las opciones de modelo de CE adecuadas a futuras ejecuciones de esas expresiones.
OPTIMIZED_SP_EXECUTESQL Sí, a partir de LA versión preliminar de SQL Server 2025 (17.x) Reducir eficazmente el impacto de las tormentas de compilación. Las tormentas de compilación hacen referencia a una situación en la que un gran número de consultas se compilan simultáneamente, lo que provoca problemas de rendimiento y contención de recursos. Habilite esta característica para permitir que las invocaciones de sp_executesql se comporten como objetos como procedimientos almacenados y desencadenadores desde una perspectiva de compilación.

Características de IQP para Azure SQL Database y SQL Server 2022

Característica de procesamiento de consultas inteligentes Compatible con Azure SQL Database Compatible con SQL Server 2022 (16.x) Descripción
Combinaciones adaptables (modo por lotes) Sí, a partir del nivel 140 de compatibilidad de la base de datos Sí, a partir de SQL Server 2017 (14.x) con el nivel 140 de compatibilidad de base de datos Las combinaciones adaptables seleccionan dinámicamente un tipo de combinación en tiempo de ejecución según las filas de entrada reales.
Count Distinct aproximada Sí, a partir de SQL Server 2019 (15.x) Proporcione aproximadamente COUNT DISTINCT escenarios de macrodatos con la ventaja de un alto rendimiento y una superficie de memoria baja.
Percentil aproximado Sí, a partir del nivel 110 de compatibilidad de la base de datos Sí, a partir de SQL Server 2022 (16.x) con el nivel 110 de compatibilidad Cálculo rápido de percentiles para un conjunto de datos grande con límites de error aceptables basados en clasificación para ayudar a tomar decisiones rápidas mediante funciones de agregado percentil aproximados.
Modo por lotes en el almacén de filas Sí, a partir del nivel 150 de compatibilidad de la base de datos Sí, a partir de SQL Server 2019 (15.x) con el nivel 150 de compatibilidad Proporcione el modo por lotes en las cargas de trabajo de almacenamiento de datos relacionales enlazadas a la CPU, sin necesidad de índices de almacén de columnas.
Comentarios de estimación de cardinalidad (CE) Sí, a partir del nivel 160 de compatibilidad de la base de datos Sí, a partir de SQL Server 2022 (16.x) con el nivel 160 de compatibilidad Ajusta automáticamente las estimaciones de cardinalidad de las consultas repetidas para optimizar las cargas de trabajo en las que las suposiciones de CE ineficaces provocan un rendimiento deficiente de las consultas. Los comentarios sobre la estimación de cardinalidad identifican y usan una suposición de modelo que se adapta mejor a una determinada consulta y distribución de datos para mejorar la calidad del plan de ejecución de consultas.
Comentarios de grado de paralelismo (DOP) Sí, en versión preliminar, a partir del nivel 160 de compatibilidad de la base de datos Sí, a partir de SQL Server 2022 (16.x) con el nivel 160 de compatibilidad Ajusta automáticamente el grado de paralelismo para consultas repetitivas con el fin de optimizar las cargas de trabajo en las que el paralelismo ineficaz puede causar problemas de rendimiento. Requiere que el almacén de consultas esté habilitado.
Ejecución intercalada Sí, a partir del nivel 140 de compatibilidad de la base de datos Sí, a partir de SQL Server 2017 (14.x) con el nivel 140 de compatibilidad de base de datos Usa la cardinalidad real de la función con valores de tabla de varias instrucciones encontrada en la primera compilación en lugar de una estimación fija.
Comentarios de concesión de memoria (modo por lotes) Sí, a partir del nivel 140 de compatibilidad de la base de datos Sí, a partir de SQL Server 2017 (14.x) con el nivel 140 de compatibilidad de base de datos Si una consulta de modo por lotes tiene operaciones que escriben en disco, agregue más memoria para las ejecuciones consecutivas. Si una consulta desperdicia > 50 % de la memoria asignada a ella, reduzca el tamaño de concesión de memoria para ejecuciones consecutivas.
Comentarios de concesión de memoria (modo de fila) Sí, a partir del nivel 150 de compatibilidad de la base de datos Sí, a partir de SQL Server 2019 (15.x) con el nivel 150 de compatibilidad de base de datos Si una consulta de modo de fila tiene operaciones que escriben en disco, agregue más memoria para las ejecuciones consecutivas. Si una consulta desperdicia > 50 % de la memoria asignada a ella, reduzca el tamaño de concesión de memoria para ejecuciones consecutivas.
Comentarios de concesión de memoria (percentil) Sí, habilitado en todas las bases de datos Sí, a partir de SQL Server 2022 (16.x)) con el nivel 140 de compatibilidad de base de datos Aborda las limitaciones existentes de los comentarios de concesión de memoria de forma no intrusiva mediante la incorporación de la ejecución de consultas pasadas para refinar los comentarios.
Persistencia de comentarios de concesión de memoria Sí, habilitado en todas las bases de datos Sí, a partir de SQL Server 2022 (16.x)) con el nivel 140 de compatibilidad de base de datos Proporciona una nueva funcionalidad para conservar los comentarios de concesión de memoria. Requiere que el almacén de consultas esté habilitado para la base de datos y en modo READ_WRITE.
Persistencia de los comentarios de CE Sí, a partir del nivel 160 de compatibilidad de la base de datos Sí, a partir de SQL Server 2022 (16.x)) con el nivel 160 de compatibilidad de la base de datos Requiere que el almacén de consultas esté habilitado para la base de datos y en modo READ_WRITE.
Persistencia de comentarios de DOP Sí, en versión preliminar, a partir del nivel 160 de compatibilidad de la base de datos Sí, a partir de SQL Server 2022 (16.x)) con el nivel 160 de compatibilidad de la base de datos Requiere que el almacén de consultas esté habilitado para la base de datos y en modo READ_WRITE.
Imposición de planes optimizados con el Almacén de consultas Sí, a partir de SQL Server 2022 (16.x)). Reduce la sobrecarga de compilación para repetir consultas forzadas. Para más información, vea Forzado de plan optimizado con Almacén de consultas.
Inserción de UDF escalar Sí, a partir del nivel 150 de compatibilidad de la base de datos Sí, a partir de SQL Server 2019 (15.x) con el nivel 150 de compatibilidad de base de datos Los UDF escalares se transforman en expresiones relacionales equivalentes que se "insertan" en la consulta que realiza la llamada, lo que a menudo supone una notable mejora del rendimiento.
Optimización del plan de sensibilidad de parámetros Sí, a partir del nivel 160 de compatibilidad de la base de datos Sí, a partir de SQL Server 2022 (16.x) con el nivel 160 de compatibilidad de la base de datos La optimización del plan sensible a los parámetros aborda el escenario en el que un único plan almacenado en caché para una consulta con parámetros puede no ser óptimo para todos los valores de parámetro entrantes posibles, como en el caso de distribuciones de datos no uniformes.
Compilación diferida de variables de tabla Sí, a partir del nivel 150 de compatibilidad de la base de datos Sí, a partir de SQL Server 2019 (15.x) con el nivel 150 de compatibilidad de base de datos Usa la cardinalidad real de la variable de tabla encontrada en la primera compilación en lugar de una estimación fija.

Características de IQP para Azure SQL Managed Instance

Característica de procesamiento de consultas inteligentes Compatible con Azure SQL Managed Instance Descripción
Combinaciones adaptables (modo por lotes) Sí, a partir del nivel 140 de compatibilidad de la base de datos Las combinaciones adaptables seleccionan dinámicamente un tipo de combinación en tiempo de ejecución según las filas de entrada reales.
Count Distinct aproximada Proporcione aproximadamente COUNT DISTINCT escenarios de macrodatos con la ventaja de un alto rendimiento y una superficie de memoria baja.
Percentil aproximado Sí, a partir del nivel 110 de compatibilidad de la base de datos Cálculo rápido de percentiles para un conjunto de datos grande con límites de error aceptables basados en clasificación para ayudar a tomar decisiones rápidas mediante funciones de agregado percentil aproximados.
Modo por lotes en el almacén de filas Sí, a partir del nivel 150 de compatibilidad de la base de datos Proporcione el modo por lotes en las cargas de trabajo de almacenamiento de datos relacionales enlazadas a la CPU, sin necesidad de índices de almacén de columnas.
Comentarios de estimación de cardinalidad (CE) Sí, a partir del nivel 160 de compatibilidad de la base de datos Ajusta automáticamente las estimaciones de cardinalidad de las consultas repetidas para optimizar las cargas de trabajo en las que las suposiciones de CE ineficaces provocan un rendimiento deficiente de las consultas. Los comentarios sobre la estimación de cardinalidad identifican y usan una suposición de modelo que se adapta mejor a una determinada consulta y distribución de datos para mejorar la calidad del plan de ejecución de consultas.
Comentarios de grado de paralelismo (DOP) No Ajusta automáticamente el grado de paralelismo para consultas repetitivas con el fin de optimizar las cargas de trabajo en las que el paralelismo ineficaz puede causar problemas de rendimiento. Requiere que el almacén de consultas esté habilitado.
Ejecución intercalada Sí, a partir del nivel 140 de compatibilidad de la base de datos Usa la cardinalidad real de la función con valores de tabla de varias instrucciones encontrada en la primera compilación en lugar de una estimación fija.
Comentarios de concesión de memoria (modo por lotes) Sí, a partir del nivel 140 de compatibilidad de la base de datos Si una consulta de modo por lotes tiene operaciones que escriben en disco, agregue más memoria para las ejecuciones consecutivas. Si una consulta desperdicia > 50 % de la memoria asignada a ella, reduzca el tamaño de concesión de memoria para ejecuciones consecutivas.
Comentarios de concesión de memoria (modo de fila) Sí, a partir del nivel 150 de compatibilidad de la base de datos Si una consulta de modo de fila tiene operaciones que escriben en disco, agregue más memoria para las ejecuciones consecutivas. Si una consulta desperdicia > 50 % de la memoria asignada a ella, reduzca el tamaño de concesión de memoria para ejecuciones consecutivas.
Comentarios de concesión de memoria (percentil) Sí, a partir del nivel 160 de compatibilidad de la base de datos Aborda las limitaciones existentes de los comentarios de concesión de memoria de forma no intrusiva mediante la incorporación de la ejecución de consultas pasadas para refinar los comentarios.
Persistencia de comentarios de concesión de memoria, CE y DOP Sí, a partir del nivel 160 de compatibilidad de la base de datos Proporciona una nueva funcionalidad para conservar los comentarios de concesión de memoria. Los comentarios de CE y DOP siempre se conservan. Requiere que el almacén de consultas esté habilitado para la base de datos y en modo READ_WRITE.
Imposición de planes optimizados con el Almacén de consultas No Reduce la sobrecarga de compilación para repetir consultas forzadas. Para más información, vea Forzado de plan optimizado con Almacén de consultas.
Inserción de UDF escalar Sí, a partir del nivel 150 de compatibilidad de la base de datos Los UDF escalares se transforman en expresiones relacionales equivalentes que se "insertan" en la consulta que realiza la llamada, lo que a menudo supone una notable mejora del rendimiento.
Optimización del plan de sensibilidad de parámetros Sí, a partir del nivel 160 de compatibilidad de la base de datos La optimización del plan de confidencialidad de parámetros aborda el escenario en el que un único plan almacenado en caché para una consulta con parámetros no es óptimo para todos los valores de parámetro entrantes posibles, por ejemplo, distribuciones de datos no uniformes.
Compilación diferida de variables de tabla Sí, a partir del nivel 150 de compatibilidad de la base de datos Usa la cardinalidad real de la variable de tabla encontrada en la primera compilación en lugar de una estimación fija.

Características de IQP para SQL Server 2019

Característica IQP Compatible con SQL Server 2019 (15.x) Descripción
Combinaciones adaptables (modo por lotes) Sí, a partir de SQL Server 2017 (14.x) con el nivel 140 de compatibilidad de base de datos Las combinaciones adaptables seleccionan dinámicamente un tipo de combinación en tiempo de ejecución según las filas de entrada reales.
Count Distinct aproximada Proporcione aproximadamente COUNT DISTINCT escenarios de macrodatos con la ventaja de un alto rendimiento y una superficie de memoria baja.
Modo por lotes en el almacén de filas Sí, a partir del nivel 150 de compatibilidad de la base de datos Proporcione el modo por lotes en las cargas de trabajo de almacenamiento de datos relacionales enlazadas a la CPU, sin necesidad de índices de almacén de columnas.
Ejecución intercalada Sí, a partir del nivel 140 de compatibilidad de la base de datos Use la cardinalidad real de la función con valores de tabla y múltiples instrucciones detectada en la primera compilación en lugar de una estimación fija.
Comentarios de concesión de memoria (modo por lotes) Sí, a partir del nivel 140 de compatibilidad de la base de datos Si una consulta de modo por lotes tiene operaciones que escriben en disco, agregue más memoria para las ejecuciones consecutivas. Si una consulta desperdicia > 50 % de la memoria asignada a ella, reduzca el tamaño de concesión de memoria para ejecuciones consecutivas.
Comentarios de concesión de memoria (modo de fila) Sí, a partir del nivel 150 de compatibilidad de la base de datos Si una consulta de modo de fila tiene operaciones que escriben en disco, agregue más memoria para las ejecuciones consecutivas. Si una consulta desperdicia > 50 % de la memoria asignada a ella, reduzca el tamaño de concesión de memoria para ejecuciones consecutivas.
Inserción de UDF escalar Sí, a partir del nivel 150 de compatibilidad de la base de datos Los UDF escalares se transforman en expresiones relacionales equivalentes que se "insertan" en la consulta que realiza la llamada, lo que a menudo supone una notable mejora del rendimiento.
Compilación diferida de variables de tabla Sí, a partir del nivel 150 de compatibilidad de la base de datos Use la cardinalidad real de la variable de tabla detectada en la primera compilación en lugar de una estimación fija.

Características de IQP para SQL Server 2017

Característica IQP Compatible con SQL Server 2017 (14.x) Descripción
Combinaciones adaptables (modo por lotes) Sí, a partir de SQL Server 2017 (14.x) con el nivel 140 de compatibilidad de base de datos Las combinaciones adaptables seleccionan dinámicamente un tipo de combinación en tiempo de ejecución según las filas de entrada reales.
Count Distinct aproximada Proporcione aproximadamente COUNT DISTINCT escenarios de macrodatos con la ventaja de un alto rendimiento y una superficie de memoria baja.
Ejecución intercalada Sí, a partir del nivel 140 de compatibilidad de la base de datos Use la cardinalidad real de la función con valores de tabla y múltiples instrucciones detectada en la primera compilación en lugar de una estimación fija.
Comentarios de concesión de memoria (modo por lotes) Sí, a partir del nivel 140 de compatibilidad de la base de datos Si una consulta de modo por lotes tiene operaciones que escriben en disco, agregue más memoria para las ejecuciones consecutivas. Si una consulta desperdicia > 50 % de la memoria asignada a ella, reduzca el tamaño de concesión de memoria para ejecuciones consecutivas.

Requisito del almacén de consultas

Varios de los conjuntos de características de procesamiento de consultas inteligentes requieren que el almacén de consultas esté habilitado para beneficiar a la base de datos de usuario. Para habilitar el almacén de consultas, consulte Habilitación del almacén de consultas.

Característica IQP Requiere que el Almacén de consultas esté habilitado y READ_WRITE
Combinaciones adaptables (modo por lotes) No
Count Distinct aproximada No
Percentil aproximado No
Modo por lotes en el almacén de filas No
Comentarios de estimación de cardinalidad (CE)
Comentarios de grado de paralelismo (DOP)
Ejecución intercalada No
Comentarios de concesión de memoria (modo por lotes) No
Comentarios de concesión de memoria (modo de fila) No
Informes de concesión de memoria (modo percentil y persistencia)
Imposición de planes optimizados con el Almacén de consultas
Inserción de UDF escalar No
Optimización del plan de sensibilidad de parámetros No, pero recomendable
Compilación diferida de variables de tabla No