Saltar al contenido
Categoría: Sin categorizar
2026-03-20

Novedades de Intelligent Query Processing en SQL Server 2025

Intelligent Query Processing

Como ya sabemos, SQL Server 2025 forma parte de nuestro catálogo desde finales de 2025.

Esta nueva versión incorpora importantes mejoras en el Procesamiento Inteligente de Consultas (IQP). Estas innovaciones se centran en automatizar tareas, disminuir la necesidad de ajustes manuales y optimizar el rendimiento mediante el uso de inteligencia artificial.

Principales mejoras de IQP en SQL Server 2025

Optimización más automática

El motor ajusta planes de ejecución de forma dinámica y con menos intervención manual.

  • El motor de base de datos es capaz de ajustarse de forma automática teniendo en cuenta un plan no eficiente y sustituirlo o modificarlo automáticamente apoyándose en un feedback continuo y técnicas de inteligencia artificial para aprender del comportamiento de las consultas.

En versiones anteriores, requeríamos de un control más manual para realizar estas acciones como analizar manualmente el rendimiento, reescribir consultas o añadir índices o «hints» a los planes de ejecución. Ahora todo este trabajo se hace de manera transparente.

En resumen, en SQL Server 2025, esta tarea se vuelve menos reactiva y pasa a ser más proactiva.

Mejor estimación de cardinalidad

Aprende de ejecuciones anteriores (feedback) y mejora cómo calcula el número de filas, generando planes más precisos.

  • Como ya sabemos, el estimador de cardinalidad ha sido un dolor de cabeza desde su cambio en SQL Server 2014.

En SQL Server 2022 ya hubo un cambio significativo para que el motor fuera capaz de calcular con mayor precisión el número de filas resultantes, pero no estaba pulido.

Es en SQL Server 2025 donde el estimador de cardinalidad pasa a un plano primario y, de nuevo gracias a la IA, es capaz de ajustar las estimaciones con resultados más precisos.

Esto también influye en un mejor manejo de datos cambiantes: cuando los datos crecen o cambian de distribución, el optimizador se adapta sin necesidad de actualizar estadísticas manualmente.

Optimización adaptativa de parámetros

Nuevas técnicas (como OPPO) permiten elegir distintos planes según los valores de los parámetros en tiempo real.

  • En versiones anteriores de SQL Server, se generaba el plan de ejecución en función del primer valor recibido, lo que podía generar planes muy malos para otros valores.

En SQL Server 2025 esto cambia: el sistema puede generar y elegir entre varios planes de ejecución según el valor del parámetro.

De esta forma, podemos tener un plan para valores de parámetros que devuelvan pocas filas y otro para valores que devuelvan muchas filas, evitando así el “parameter sniffing”.

Reducción de problemas de compilación

Mejora el comportamiento de sp_executesql para evitar compilation storms y reducir sobrecarga.

  • Gracias a que el nuevo motor de SQL Server 2025 no necesita recompilar tantas consultas parecidas o similares, se evita un uso excesivo de CPU.

Además, reduce la presión sobre la caché de planes y mejora su estabilidad.

Los entornos con un alto uso de consultas dinámicas como Navision o AX se verán beneficiados por este cambio, ya que realizan muchas compilaciones.

Más uso de IA y feedback continuo

El sistema aprende del uso real, ajusta memoria, paralelismo y decisiones del optimizador automáticamente.

  • Gracias a la IA, IQP da un paso más en mecanismos avanzados, aprendizaje automático y retroalimentación continua, lo que permite que el motor aprenda y mejore por sí solo dependiendo del entorno.

Con SQL Server 2025 añadimos un plus al feedback de SQL Server 2022 y una capa adicional de Inteligencia Artificial que ayuda a aplicar mejoras de manera proactiva.

Resumen

SQL Server 2025 abraza la IA y juntos convergen de manera que nos ayude a administrar y gestionar nuestros entornos de forma más precisa.

Ejemplo práctico: OPPO en SQL Server 2025

Para dar ejemplo sobre una de estas mejoras, vamos a centrarnos en OPPO.

Para demostrar OPPO en SQL Server 2025, he creado un procedimiento con un parámetro opcional real (@CustomerID). Al ejecutar la consulta con @CustomerID = NULL, el motor elige un plan orientado a leer un gran volumen de datos. Sin embargo, al ejecutar la misma consulta con @CustomerID = 2, selecciona una variante más selectiva basada en búsqueda por índice. En el plan de ejecución se observa PLAN PER VALUE junto con optional_predicate(@CustomerID IS NULL), lo que confirma que SQL Server 2025 ha generado variantes de plan adaptadas al valor del parámetro.

USE [DemoDB];
GO

/* 1) Prerrequisitos de OPPO */
ALTER DATABASE [DemoDB] SET COMPATIBILITY_LEVEL = 170;
GO

ALTER DATABASE SCOPED CONFIGURATION SET OPTIONAL_PARAMETER_OPTIMIZATION = ON;
GO

/* Limpieza por si existían objetos previos */
IF OBJECT_ID('dbo.SalesDemo_OPPO', 'U') IS NOT NULL
DROP TABLE dbo.SalesDemo_OPPO;
GO

IF OBJECT_ID('dbo.usp_SalesDemo_OPPO', 'P') IS NOT NULL
DROP PROC dbo.usp_SalesDemo_OPPO;
GO

/* 2) Tabla de demo */
CREATE TABLE dbo.SalesDemo_OPPO
(
SaleID bigint IDENTITY(1,1) NOT NULL,
CustomerID int NOT NULL,
OrderDate date NOT NULL,
Amount decimal(12,2) NOT NULL,
Filler char(300) NOT NULL DEFAULT REPLICATE('X',300),
CONSTRAINT PK_SalesDemo_OPPO
PRIMARY KEY CLUSTERED (SaleID)
);
GO

CONSTRAINT PK_SalesDemo_OPPO
    PRIMARY KEY CLUSTERED (SaleID)
);
GO

/* 3) Datos:
- Muchísimas filas para CustomerID = 1
- Muy pocas filas para el resto
Esto crea un contraste claro entre @CustomerID = NULL y @CustomerID = 2
*/
;WITH N AS
(
SELECT TOP (5000000)
ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS n
FROM sys.all_objects a
CROSS JOIN sys.all_objects b
)
INSERT INTO dbo.SalesDemo_OPPO (CustomerID, OrderDate, Amount)
SELECT
CASE WHEN n <= 450000 THEN 1 ELSE n - 449999 END AS CustomerID,
DATEADD(day, n % 365, '2025-01-01'),
CAST((n % 1000) + 0.99 AS decimal(12,2))
FROM N;
GO

/* 4) Índice útil para el caso selectivo */
CREATE INDEX IX_SalesDemo_OPPO_CustomerID
ON dbo.SalesDemo_OPPO (CustomerID);
GO

/* 5) Estadísticas al día */
UPDATE STATISTICS dbo.SalesDemo_OPPO WITH FULLSCAN;
GO

/* 6) Procedimiento con PARÁMETRO REAL (no variable local)
Este es el patrón elegible para OPPO
*/
CREATE OR ALTER PROC dbo.usp_SalesDemo_OPPO
@CustomerID int = NULL
AS
BEGIN
SET NOCOUNT ON;

SELECT COUNT_BIG(*) AS TotalRows
FROM dbo.SalesDemo_OPPO
WHERE CustomerID = @CustomerID
   OR @CustomerID IS NULL;
END
GO

/* 7) Limpiamos caché para que la prueba sea limpia */
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
GO
/* 7) Limpiamos caché para que la prueba sea limpia */
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
GO

/* 8) Ejecuta ambos escenarios */
SET STATISTICS IO, TIME ON;
GO

EXEC dbo.usp_SalesDemo_OPPO @CustomerID = NULL;
GO

EXEC dbo.usp_SalesDemo_OPPO @CustomerID = 2;
GO

Como podemos observar, el plan utilizado cambia en función al valor utilizado.

En definitiva, SQL Server 2025 consolida un motor más inteligente y autónomo, capaz de mejorar su rendimiento de forma continua gracias a la IA y al feedback real del entorno. Un avance claro hacia una optimización más precisa y menos dependiente de intervención manual.

Artículos de la Serie de SQL Server 2025

Parte 1: Todas las novedades de SQL Server 2025
Parte 2: Optimized Locking en SQL Server 2025
Parte 3: Nuevo algoritmo compresión backup ZSTD para SQL Server 2025
Parte 4: Change Event Streaming (CES) en SQL Server 2025
Parte 5: SQL Server 2025 mejora el rendimiento de JSON con índices y nuevas funciones
Parte 6: Vector Search en SQL Server 2025: tipo VECTOR y DiskANN
Parte 7: Cómo usar expresiones regulares (REGEX) en SQL Server 2025
Parte 8: Novedades de Intelligent Query Processing en SQL Server 2025

Complete este formulario para recibir la guía de Windows Server en Azure
*Obligatorio
Complete este formulario para recibir la guía de Windows Server en Azure
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete este formulario para recibir 4 best practices to implement a comprehensive Zero Trust security approach
*Obligatorio
Complete este formulario para recibir 4 best practices to implement a comprehensive Zero Trust security approach
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete este formulario para recibir Cloud Migration Essentials
*Obligatorio
Complete este formulario para recibir Cloud Migration Essentials
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete este formulario para recibir Cloud security Advice for Nonprofit Leaders
*Obligatorio
Complete este formulario para recibir Cloud security Advice for Nonprofit Leaders
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete este formulario para recibir Prevent data leaks with Microsoft 365 Business Premium
*Obligatorio
Complete este formulario para recibir Prevent data leaks with Microsoft 365 Business Premium
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete this form to recieve the guide of Windows Server on Azure
*Required
Complete this form to recieve the guide of Windows Server on Azure
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve 4 best practices to implement a comprehensive Zero Trust security approach
*Required
Complete this form to recieve 4 best practices to implement a comprehensive Zero Trust security approach
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve Cloud Migration Essentials
*Required
Complete this form to recieve Cloud Migration Essentials
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve Cloud security Advice for Nonprofit Leaders
*Required
Complete este formulario para recibir Cloud security Advice for Nonprofit Leaders
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve Prevent data leaks with Microsoft 365 Business Premium
*Obligatorio
Complete this form to recieve Prevent data leaks with Microsoft 365 Business Premium
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve Cloud Migration Simplified Ebook.
*Obligatorio
Complete this form to recieve Prevent data leaks with Microsoft 365 Business Premium
Thank you for filling out the form [name]. Here's your Free eBook!