[멀티캠퍼스]  ★PDF 교재 파일 전달
PW : FA00XK
https://classnow.webex.com 

http://naver.me/FcgGEiOK
1111

25124970655
1111

Shared Pool
parse 컴파일

1) parse - Shared Pool (Library Cache)
SQL text
실행계획
p-code ==> Shared Pool 의 Library 
soft parse 
hard parse

2) bind

3) execute : DBC : data block의 복사본
   db_block_size = 8k

logical reads :
physical reads :
cache hit ratio 중요 : 

1000 1000
  100   50

server tuning 
sql tuning

4) fetch -- only select



실행계획

Chapter1 
인덱스 활용


인덱스의 주된 목표 
- select 를 빨리하기 위해서

B* Tree (발란스 트리구조)


select EMPNO, ROWIND from EMP order by EMPNO;


select * from TABLE (DBMS_XPLAN.DISPLAY_CURSOR); --실행계획


set linesize 200
set pagesize 100

--SELECT * FROM table(dbms_xplan.display_cursor(null,null,'allSTATS LAST')) ;



SELECT * FROM table(dbms_xplan.display_cursor) ;


@c:\LABS\XPLAN
도구
-환경설정
-데이터베이스


@XPLAN -- 환경설정 도구-환경설정-데이터베이스-워크시트 -스크립트를 찾을기본 경로선택 ㅊ


리버스 키인덱스


실행계획


SELECT *
FROM EMP
WHERE DEPTNO = 20;

WHAT 
HOW -- PROGRAM
EXE PLAN


PARSE : 실행계획 : OPTIMIZER : RULE, COST
FULL TABLE SCAN : 5
INDEX : 

FTS

optimizer_mode = all_rows (default) : 전체처리를 가장 빠르기
first_rows : response time을 빠르기

full table scan : 5

cost : 

EXECUTE

FETCH
;


show parameter optimizer;


/**/ BLOCK Comment 힌트

힌트
INDEX scan

인덱스 스캔
인덱스 access

index scan
range

table random access HWM


시퀀셔 엑세스


인덱스를 제대로 못탈 경우 풀테이블 스캔이 더 나음


6가지 인덱스 스캔
-1.인덱스 유니크 스캔


SELECT *
 FROM EMP
WHERE ENAME ='SCOTT'

@XPLAN
SELECT ENAME, ROWID FROM EMP ORDER BY 1;


힌트 : index (테이블 명 인덱스명)
        index_rs (테이블명 인덱스명)
        index_rs (테이블명(컬럼명))
        index_rs_asc ( 테이블명(컬럼명))
        index_rs_desc (테이블명(컬럼명))


인덱스 풀스캔일 경우

/*+ index_ffs(e(employee_id)) */

select empno
from emp
order by 1
;
select EMPNO
from EMP;

;
@XPLAN
select empno, rowid from emp order by empno;

select * from employees;

select /*+ index_join (e EMPLOYEES_IDX02 EMPLOYEES_ID04 ) */
        department_id, JOB_id
  FROM employees e
where department_id = 80
 and job_id ='SA_REP'
;


인덱스 스킵 스캔
select /*+ index_ss (e empl_name ix) */ employee_id, first_name, last_name, salary,
department_id
from employees e
where first_name ='Steven';


인덱스 활용

인덱스 스캔 불가 사례
1. <>, !=, ^= 등 부정형의 비교
2. 인덱스 컬럼의 변형이 발생한 경우
3. Null 인 데이터를 조회하는 경우
4.like '%문자열' 사용하는경우



NESTED LOOP JOIN

9I NLJ PREFETCH
11g, NLJ_BATCHING 물리적읽기로 인한 지연을 줄이기 위해서 

DBC 데이터베이스 버퍼 캐쉬
인덱스 통해서 블럭단위를 읽을 때 



+ Recent posts