KB3107397: diagnósticos mejorados para planes de ejecución de consultas que implican un predicado residual en SQL Server

Se aplica a
SQL Server 2012 Enterprise SQL Server 2012 Web SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use)

Síntomas

Algunos planes de ejecución de consultas de Microsoft SQL Server incluyen el patrón de evaluación de un filtro encima de una tabla o de una operación de análisis o rango de índices. Algunas partes del predicado de filtro pueden coincidir con una clave de índice y, por tanto, pueden usarse para ejecutar un examen de búsqueda o rango de índice. Las partes restantes del predicado se conocen como "residuales" y deben evaluarse para cada salida de fila mediante la operación de exploración o rango. Esto se correspondería con un operador de filtro. Sin embargo, para mejorar el rendimiento, SQL Server puede insertar dicho filtro hacia abajo hasta el operador de acceso de tabla en sí.

Aunque este enfoque mejora el rendimiento en general, en algunas condiciones (por ejemplo, en el caso de una estimación de cardinalidad inexacta relacionada con la sensibilidad de los parámetros), el filtro que viene a continuación puede estar procesando un número mayor de filas de lo esperado. Este hecho puede ocultarse durante la solución de problemas de rendimiento de consultas cuando se usa un plan de ejecución real, porque el número real de filas que se devuelve se corresponde con el número de filas después de aplicar el predicado residual y no con el número real de filas que se analizan de una tabla o índice.

Resolución

Para mejorar los diagnósticos para escenarios que se describen en la sección Síntomas, SQL Server Service Pack 3 (SP3) de 2012 y SQL Server 2014 SP2 presentan un nuevo atributo XML showplan, Real Rows Read. Este atributo proporciona información sobre cuántas filas leyó el operador antes de aplicar el predicado residual.

Esta funcionalidad se introdujo en los siguientes Service Pack para SQL Server. 

Para obtener más información sobre SQL Server Service Pack 3 (SP3) de 2012, consulte errores corregidos en SQL Server 2012 Service Pack 3 .

Service Pack 2 para SQL Server para SQL Server 2014
        
         SQL Server 2016 Service Pack 1 (SP1) 

Acerca de los Service Pack para SQL Server

Los Service Packs son acumulativos. Cada Service Pack nuevo contiene todas las revisiones que se incluyen en los anteriores, además de otras nuevas. Nuestra recomendación es aplicar el Service Pack más reciente y la actualización acumulativa más reciente para ese Service Pack. No necesita instalar un Service Pack anterior antes de instalar el más reciente. Use la Tabla 1 del artículo siguiente para obtener más información sobre el Service Pack más reciente y la actualización acumulativa más reciente.

Cómo determinar el nivel de versión, edición y actualización de SQL Server y sus componentes