[멀티캠퍼스] ★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 데이터베이스 버퍼 캐쉬
인덱스 통해서 블럭단위를 읽을 때
'DataBase > Oracle' 카테고리의 다른 글
| [Oracle] 계층형 쿼리 Hierarchiacal Query ( + LISTAGG() 함수) (0) | 2023.12.18 |
|---|---|
| 성능을 향상 쿼리 튜닝 (0) | 2023.09.26 |
| [ERWIN][ORACLE] erwin 연동해서 오라클 테이블 만들기 (0) | 2023.08.10 |
| 오라클 엑사데이터 (0) | 2023.08.10 |
| SGA 메모리 구조의 이해 (0) | 2023.08.10 |