Procesamiento de consultas inteligente en bases de datos SQL

Se aplica a: SQL Server (todas las versiones admitidas) Azure SQL Database Azure SQL Managed Instance

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 de seis minutos 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 = 150;

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.

Características de IQP para la versión preliminar de SQL Server 2022 (16.x), Azure SQL Database, Azure SQL Managed Instance

Característica de procesamiento de consultas inteligentes Se admite en Azure SQL Database y Instancia administrada de Azure SQL Se admite en SQL Server Descripción
Combinaciones adaptables (modo por lotes) Sí, a partir del nivel de compatibilidad de base de datos 140 Sí, a partir de SQL Server 2017 (14.x) con el nivel de compatibilidad de base de datos 140 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 un valor de COUNT DISTINCT aproximado en escenarios de macrodatos, con la ventaja de un alto rendimiento y una baja superficie de memoria.
Modo por lotes en el almacén de filas Sí, a partir del nivel de compatibilidad de base de datos 150 Sí, a partir de SQL Server 2019 (15.x) con el nivel de compatibilidad 150 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 de compatibilidad de base de datos 160 Sí, a partir de SQL Server versión preliminar 2022 (16.x) con el nivel de compatibilidad 160 Ajusta automáticamente las estimaciones de cardinalidad para repetir consultas para optimizar las cargas de trabajo en las que las suposiciones de CE ineficazs 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 sobre grados de paralelismo (DOP) Sí, a partir del nivel de compatibilidad de base de datos 160 Sí, a partir de SQL Server versión preliminar 2022 (16.x) con el nivel de compatibilidad 160 Ajusta automáticamente el grado de paralelismo para repetir consultas para optimizar las cargas de trabajo en las que el paralelismo ineficaz puede causar problemas de rendimiento. Requiere que se habilite Almacén de consultas.
Ejecución intercalada Sí, a partir del nivel de compatibilidad de base de datos 140 Sí, a partir de SQL Server 2017 (14.x) con el nivel de compatibilidad de base de datos 140 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 de compatibilidad de base de datos 140 Sí, a partir de SQL Server 2017 (14.x) con el nivel de compatibilidad de base de datos 140 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 > el 50 % de la memoria asignada, 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 de compatibilidad de base de datos 150 Sí, a partir de SQL Server 2019 (15.x) con el nivel de compatibilidad de base de datos 150 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 > el 50 % de la memoria asignada, reduzca el tamaño de concesión de memoria para ejecuciones consecutivas.
Comentarios de concesión de memoria (percentil) Sí, a partir del nivel de compatibilidad de base de datos 150 Sí, a partir de SQL Server versión preliminar 2022 (16.x) con el nivel de compatibilidad de base de datos 140 Aborda las limitaciones existentes de los comentarios de concesión de memoria de una manera no intrusiva.
Persistencia de comentarios de concesión de memoria, CE y DOP Sí, a partir del nivel de compatibilidad de base de datos 160 Sí, a partir de SQL Server 2022 (16.x) Preview) con el nivel de compatibilidad de base de datos 160 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 anteriores para refinar los comentarios. Requiere que Almacén de consultas esté habilitado para la base de datos y en modo de "lectura y escritura".
Forzado de plan optimizado Sí, a partir del nivel de compatibilidad de base de datos 160 Sí, a partir de SQL Server 2022 (16.x) Preview) con el nivel de compatibilidad de base de datos 160 Reduce la sobrecarga de compilación para repetir consultas forzadas. Para obtener más información, consulte El plan optimizado se fuerza con Almacén de consultas.
Inserción de UDF escalar Sí, a partir del nivel de compatibilidad de base de datos 150 Sí, a partir de SQL Server 2019 (15.x) con el nivel de compatibilidad de base de datos 150 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 confidencialidad de parámetros Sí, a partir del nivel de compatibilidad de base de datos 150 Sí, (a partir de SQL Server versión preliminar 2022 (16.x) con el nivel de compatibilidad de base de datos 150 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 de compatibilidad de base de datos 150 Sí, a partir de SQL Server 2019 (15.x) con el nivel de compatibilidad de base de datos 150 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 (15.x)

Característica de procesamiento de consultas inteligentes 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 de compatibilidad de base de datos 140 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 un valor de COUNT DISTINCT aproximado en escenarios de macrodatos, con la ventaja de un alto rendimiento y una baja superficie de memoria.
Modo por lotes en el almacén de filas Sí, a partir del nivel de compatibilidad de base de datos 150 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 de compatibilidad de base de datos 140 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 de compatibilidad de base de datos 140 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 > el 50 % de la memoria asignada, 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 de compatibilidad de base de datos 150 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 > el 50 % de la memoria asignada, reduzca el tamaño de concesión de memoria para ejecuciones consecutivas.
Comentarios de concesión de memoria (percentil y persistencia) Sí, introducido en SQL Server 2019 (15.x), pero se aplica al nivel de compatibilidad de base de datos 140 y versiones posteriores Aborda las limitaciones existentes de los comentarios de concesión de memoria de una manera no intrusiva.
Inserción de UDF escalar Sí, a partir del nivel de compatibilidad de base de datos 150 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 de compatibilidad de base de datos 150 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 (14.x)

Característica de procesamiento de consultas inteligentes 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 de compatibilidad de base de datos 140 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 un valor de COUNT DISTINCT aproximado en escenarios de macrodatos, con la ventaja de un alto rendimiento y una baja superficie de memoria.
Ejecución intercalada Sí, a partir del nivel de compatibilidad de base de datos 140 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 de compatibilidad de base de datos 140 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 > el 50 % de la memoria asignada, reduzca el tamaño de concesión de memoria para ejecuciones consecutivas.
[Comentarios de concesión de memoria (percentil y persistencia) Sí, introducido en SQL Server 2019 (15.x), pero se aplica al nivel de compatibilidad de base de datos 140 y versiones posteriores Aborda las limitaciones existentes de los comentarios de concesión de memoria de una manera no intrusiva.

Para obtener detalles completos sobre todas las características de IQP, incluidas las notas de la versión y descripciones más detalladas, consulte Detalles de características de procesamiento de consultas inteligentes (IQP).

Consulte también

Pasos siguientes