sql >> Base de Datos >  >> RDS >> Oracle

GATHER_PLAN_STATISTICS no genera estadísticas básicas del plan

Si todo lo que ejecutó fueron las dos declaraciones en su pregunta:

select /*+ gather_plan_statistics */ * from emp;

select * from table(dbms_xplan.display(FORMAT=>'ALLSTATS LAST'));

Entonces creo que su problema es su uso de DBMS_XPLAN.DISPLAY . De la forma en que lo está utilizando, está imprimiendo el plan de la última declaración que explicó, no la última declaración que ejecutó. Y "explicar" no ejecutará la consulta, por lo que no se beneficiará de un gather_plan_statistics pista.

Esto funciona para mí en 12c:

select /*+ gather_plan_statistics */ count(*) from dba_objects;

SELECT *
FROM   TABLE (DBMS_XPLAN.display_cursor (null, null, 'ALLSTATS LAST'));

es decir, display_cursor en lugar de simplemente display .