Ако всичко, което изпълнихте, бяха двете твърдения във вашия въпрос:
select /*+ gather_plan_statistics */ * from emp; select * from table(dbms_xplan.display(FORMAT=>'ALLSTATS LAST'));
Тогава мисля, че проблемът ви е използването на DBMS_XPLAN.DISPLAY
. Начинът, по който го използвате, вие отпечатвате плана на последния израз, който сте обяснили, а не на последния, който сте изпълнили. И „explain“ няма да изпълни заявката, така че няма да се възползва от gather_plan_statistics
намек.
Това работи за мен в 12c:
select /*+ gather_plan_statistics */ count(*) from dba_objects;
SELECT *
FROM TABLE (DBMS_XPLAN.display_cursor (null, null, 'ALLSTATS LAST'));
т.е. display_cursor
вместо просто display
.