Nếu tất cả những gì bạn chạy là hai câu trong câu hỏi của bạn:
select /*+ gather_plan_statistics */ * from emp; select * from table(dbms_xplan.display(FORMAT=>'ALLSTATS LAST'));
Sau đó, tôi nghĩ rằng vấn đề của bạn là việc bạn sử dụng DBMS_XPLAN.DISPLAY
. Theo cách bạn đang sử dụng, bạn đang in kế hoạch của câu lệnh cuối cùng mà bạn giải thích, không phải câu lệnh cuối cùng bạn đã thực hiện. Và "giải thích" sẽ không thực thi truy vấn, vì vậy nó sẽ không được hưởng lợi từ gather_plan_statistics
gợi ý.
Điều này phù hợp với tôi trong 12c:
select /*+ gather_plan_statistics */ count(*) from dba_objects;
SELECT *
FROM TABLE (DBMS_XPLAN.display_cursor (null, null, 'ALLSTATS LAST'));
tức là display_cursor
thay vì chỉ display
.