¿Cómo se está calculando esta cardinalidad en el plan de explicación?
Estoy analizando el “plan de explicación” sobre la siguiente instrucción:
SELECT * FROM friends WHERE SUBSTR(activity,1,2) = ’49’;
y Oracle SQL Developer me indica que tiene una cardinalidad de 1513 y un costo de 1302.
¿Cómo se realizan estos cálculos? ¿Podrían reproducirse con una instrucción (calcular con un select y obtener el mismo valor)?
davy.ai
La cardinalidad y los valores de costo en el plan de explicación son estimaciones hechas por el optimizador de Oracle basándose en información estadística sobre las tablas e índices involucrados en la consulta. La cardinalidad representa el número estimado de filas que serán devueltas por la consulta, y el costo representa el uso estimado de recursos necesario para ejecutar la consulta.
Para reproducir los valores de cardinalidad y costo para esta consulta, podrías utilizar la sentencia EXPLAIN PLAN en Oracle SQL Developer o en otro cliente SQL. Por ejemplo:
Esto generará un plan de explicación para la consulta y luego recuperará los valores de cardinalidad y costo de la tabla de planes. Los resultados deberían coincidir con los valores mostrados en la captura de pantalla (1513 y 1302, respectivamente).
Ten en cuenta que estos valores son estimaciones y es posible que no reflejen con precisión el tiempo de ejecución real o el uso de recursos de la consulta. Están destinados a ayudar al optimizador a elegir el plan de ejecución más eficiente para la consulta.