Oracle
 sql >> Base de données >  >> RDS >> Oracle

GATHE_PLAN_STATISTICS ne génère pas de statistiques de plan de base

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 .