데이터베이스 분류
실행계획 설명
작성자 정보
- 웹관리자 작성
- 작성일
컨텐츠 정보
- 6,984 조회
- 0 추천
- 목록
본문
수동으로 실행계획을 파악하는 방법을 설명합니다.
사용자가 질의한 것이 어떤식으로 실행될 것인가(실행계획)을 파악한다면
애플리케이션을 코딩하면서 이를 이용하면 질의를 작성하는데 좀더 현명하게 적용할 수 있을 겁니다.
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를 이용하면 위와 같이 불편하게 입력할 필요는 없을 겁니다.
사용자가 질의한 것이 어떤식으로 실행될 것인가(실행계획)을 파악한다면
애플리케이션을 코딩하면서 이를 이용하면 질의를 작성하는데 좀더 현명하게 적용할 수 있을 겁니다.
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
"무단배포금지: 클라우드포털(www.linux.co.kr)의 모든 강좌는 저작권에 의해 보호되는 콘텐츠입니다. 무단으로 복제하여 배포하는 행위는 금지되어 있습니다."
관련자료
-
이전
-
다음
댓글 0
등록된 댓글이 없습니다.