강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

실행계획 설명

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

수동으로 실행계획을 파악하는 방법을 설명합니다.
사용자가 질의한 것이 어떤식으로 실행될 것인가(실행계획)을 파악한다면
애플리케이션을 코딩하면서 이를 이용하면 질의를 작성하는데 좀더 현명하게 적용할 수 있을 겁니다.

SQL> connect test/xxxxxx@xxxx
연결되었습니다.
SQL> select * from tab;

TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
COUNTER TABLE
COUNTER_CODE TABLE
MEETING TABLE
WREAD TABLE

SQL>
start c:orant dbmsadminutlxplan.sql    이는 plan_table을 생성해줍니다.

테이블이 생성되었습니다.

SQL> select * from tab;

TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
COUNTER TABLE
COUNTER_CODE TABLE
MEETING TABLE
PLAN_TABLE TABLE
WREAD TABLE

SQL> desc meeting;
이름 널? 유형
----------------------------------------- -------- ----------------------------
CODE NOT NULL VARCHAR2(20)
SEX VARCHAR2(5)
AGE VARCHAR2(5)
AREA VARCHAR2(5)
COUNTER VARCHAR2(9)
SUBJECT VARCHAR2(50)
COMMENTS VARCHAR2(200)
FAVORITE VARCHAR2(100)
H_PHONE VARCHAR2(20)
NAME VARCHAR2(20)
PSWORD VARCHAR2(20)
SIGN_DATE VARCHAR2(30)
MAIL VARCHAR2(30)

SQL>
explain plan
2 set statement_id=
'kang4'    kang4는 이 질의에 대한 일종의 식별자입니다.(마음대로 적으세요)

3 into plan_table for
4 select sex, area, h_phone from meeting;


해석되었습니다.

SQL>
select lpad(' ', 2*level) ||operation||' '||options||' '||object_name as query_plan
2 from plan_table
3 where statement_id='kang4'
4 connect by prior id = parent_id and statement_id = 'kang4';


QUERY_PLAN
--------------------------------------------------------------------------------
SELECT STATEMENT
TABLE ACCESS FULL MEETING
TABLE ACCESS FULL MEETING


SQL> delete from plan_table;

4 행이 삭제되었습니다.

SQL> commit;

커밋이 완료되었습니다.


autotrace를 이용하면 위와 같이 불편하게 입력할 필요는 없을 겁니다.

Copyleft(C) 명규의 오라클OCP All rights free

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  122 명