es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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)?

Tags:  , , ,

Answer

  1. Avatar for 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:

    EXPLAIN PLAN FOR
    SELECT * FROM friends WHERE SUBSTR(activity,1,2) = '49';
    
    SELECT CARDINALITY, COST 
    FROM PLAN_TABLE 
    WHERE ID = (SELECT MAX(ID) FROM PLAN_TABLE);
    

    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.

Comments are closed.