Evitar predicados redundantes

Evite predicados redundantes, especialmente cuando se producen en distintas tablas. En algunos casos, el optimizador no puede detectar que los predicados son redundantes. Esto puede dar como resultado una subestimación de la cardinalidad.

Por ejemplo, en aplicaciones de inteligencia empresarial (BI) SAP , el esquema de copo de nieve con tablas de hechos y dimensiones se utiliza como una estructura de datos optimizada de consulta. En algunos casos, hay una columna característica de tiempo redundante ( "SID_0CALMONTH" para el mes o "SID_0FISCPER" para el año) definida en las tablas de hechos y dimensiones.

El procesador de procesamiento analítico en línea (OLAP) de SAP BI genera predicados redundantes en la columna de características de tiempo de las tablas de dimensiones y hechos.

Estos predicados redundantes pueden dar como resultado un tiempo de ejecución de consulta más largo.

La sección siguiente proporciona un ejemplo con dos predicados redundantes definidos en la condición WHERE de una consulta SAP BI. Los predicados idénticos se definen en la tabla de dimensiones de tiempo (DT) y hechos (F):
     AND (     "DT"."SID_0CALMONTH" = 199605
           AND "F". "SID_0CALMONTH" = 199605
            OR "DT"."SID_0CALMONTH" = 199705
           AND "F". "SID_0CALMONTH" = 199705 )
 AND NOT (     "DT"."SID_0CALMONTH" = 199803
           AND "F". "SID_0CALMONTH" = 199803 )
El optimizador de Db2® no reconoce los predicados como idénticos y los trata como independientes. Esto lleva a la subestimación de cardinalidades, planes de acceso de consulta subóptimos y tiempos de ejecución de consulta más largos.

Por este motivo, los predicados redundantes se eliminan mediante la capa de software específica de la plataforma de base de datos Db2 .

Estos predicados se transfieren a los siguientes y sólo quedan los predicados sobre la columna de la tabla de hechos "SID_0CALMONTH" :
    AND (     "F". "SID_0CALMONTH" = 199605
           OR "F". "SID_0CALMONTH" = 199705 )
AND NOT (     "F". "SID_0CALMONTH" = 199803 )
Aplique las instrucciones de las notas de SAP 957070 y 1144883 para eliminar los predicados redundantes.