1 minute read

1. PLAN_TABLE’ is old version

  • EXPLAIN PLAN FOR에 대해서 후배에게 설명을 해주고 실습 문제를 내주었다.
  • 하지만, 실행계획은 나오지만 Predicate Information이 나오는 부분에 아래와 같은 오류가 나왔다.
  • 실행계획에 단계별 소요시간도 확인할 수가 없었다. PLAN_TABLE’ is old version
EXPLAIN PLAN FOR SELECT * FROM TB_6M;  

 SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY(NULL, NULL, 'ADVANCED'));  
 
 
---------------------------------------------------------------------
| Id  | Operation         | Name       | Rows  | Bytes | Cost (%CPU)|
---------------------------------------------------------------------
|   0 | SELECT STATEMENT  |            |   303K|    90M|  3870   (1)|
|   1 |  TABLE ACCESS FULL| TB_SL6M    |   303K|    90M|  3870   (1)|
---------------------------------------------------------------------
Note
-----
   - 'PLAN_TABLE' is old version

2. 원인

  • plan_table의 버전이 너무 오래되어서 나오는 오류라고 한다.
  • 사용자가 plan_table을 생성할 필요 없다고한다 (10g이후).
  • SYS 스키마에 모든 유저가 사용할 수 있는 임시 테이블 PLAN_TABLE$과 PUBLIC SYNONYM PLAN_TABLE 이 존재
  • 사용자 스키마에 plan_table이 존재 할 경우 동의어보다 테이블을 우선 탐색하기 때문에 위와 같은 오류를 발생한다

3. 해결방법

  • 아래와 같이 본인스키마 밑에 plan table을 새로 생성해주었다. ``` – Table 생성 create table 본인스키마.PLAN_TABLE ( statement_id varchar2(30), plan_id number, timestamp date, remarks varchar2(4000), operation varchar2(30), options varchar2(255), object_node varchar2(128), object_owner varchar2(30), object_name varchar2(30), object_alias varchar2(65), object_instance numeric, object_type varchar2(30), optimizer varchar2(255), search_columns number, id numeric, parent_id numeric, depth numeric, position numeric, cost numeric, cardinality numeric, bytes numeric, other_tag varchar2(255), partition_start varchar2(255), partition_stop varchar2(255), partition_id numeric, other long, distribution varchar2(30), cpu_cost numeric, io_cost numeric, temp_space numeric, access_predicates varchar2(4000), filter_predicates varchar2(4000), projection varchar2(4000), time numeric, qblock_name varchar2(30), other_xml clob );

–Table 삭제(본인 계정에 Plan Table이 있으며 정상적으로 Plan이 나오지 않는 경우) drop table 본인계정.PLAN_TABLE ; ```

결과

  • 결과는 잘 나왔다.(수정 후 반영된것을 캡처를 못했다.)

Updated: