Si vous n'aviez utilisé que les deux énoncés de votre question :
select /*+ gather_plan_statistics */ * from emp; select * from table(dbms_xplan.display(FORMAT=>'ALLSTATS LAST'));
Ensuite, je pense que votre problème est votre utilisation de DBMS_XPLAN.DISPLAY
. De la façon dont vous l'utilisez, vous imprimez le plan de la dernière instruction que vous avez expliquée, pas la dernière instruction que vous avez exécutée. Et "explain" n'exécutera pas la requête, donc elle ne bénéficiera pas d'un gather_plan_statistics
indice.
Cela fonctionne pour moi en 12c :
select /*+ gather_plan_statistics */ count(*) from dba_objects;
SELECT *
FROM TABLE (DBMS_XPLAN.display_cursor (null, null, 'ALLSTATS LAST'));
c'est-à-dire display_cursor
au lieu de simplement display
.