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
.