Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

GATHER_PLAN_STATISTICS não gera estatísticas básicas do plano


Se tudo o que você executasse fossem as duas declarações em sua pergunta:
select /*+ gather_plan_statistics */ * from emp;

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

Então acho que seu problema é o uso de DBMS_XPLAN.DISPLAY . Do jeito que você está usando, você está imprimindo o plano da última instrução que você explicou, não a última instrução que você executou. E "explain" não executará a consulta, portanto, não se beneficiará de um gather_plan_statistics dica.

Isso funciona para mim em 12c:
select /*+ gather_plan_statistics */ count(*) from dba_objects;

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

ou seja, display_cursor em vez de apenas display .