티스토리 뷰

반응형

2-3 INDEX적용 - 인덱스를 사용하지 못하는 경우

1 NOT 연산자 사용

2 IS NULL, IS NOT NULL 사용

3 옵티마이저의 취사 선택

Optimizer의 자의적 판단에 의해서 인덱스를 사용할 수도 있고 사용하지 않을 수도 있는데, 이러한 것을 취사 선택이라고 함

Rule Base Optimizer는 정해진 규칙을 기준

Cost Base Optimizer는 비용을 기준

이러한 Optimizer의 자의적 판단으로 인한 잘못된 선택을 강제로 제어하기 위해서는 Hint를 사용

External Suppressing – SQL 작성 오류 (Misunderstanding)

① 불필요한 함수를 사용한 경우

WHERE SUBSTR(ENAME,1,1) = 'M';

 WHERE ENAME LIKE ‘M%’;

② 문자열 결합

WHERE JOB||DEPTNO = 'MANAGER10';

 WHERE JOB = ‘MANAGER’ AND DEPTNO = 10;

③ DATE 변수의 가공

WHERE T

O_CHAR(HIREDATE,‘YYYYMMDD') = ‘20021016’;

 WHERE HIREDATE BETWEEN TO_DATE(‘20021016’,‘YYYYMMDD’) AND TO_DATE(‘20021016’,‘YYYYMMDD’)+0.99999;

④ 불필요한 NULL 처리

WHERE NVL(JOB,'NOJOB') = 'MANAGER'

 WHERE JOB = = 'MANAGER';

⑤ 산술식의 적용

WHERE SAL*12 > 40000;

 WHERE SAL > 40000/12;

External Suppressing – 개발자의 의도

사례 1 - 인덱스 사용여부 결정

① WHERE STATUS = ’퇴직’

② WHERE STATUS = ’재직’

 WHERE RTRIM(STATUS) = ’재직’

사례 2 – 옵티마이저에 의한 취사 선택 WHERE STATUS = ’재직’ AND RESNO LIKE ’74%’

WHERE RTRIM(STATUS) = ‘재직’ AND RESNO LIKE ’74%’

사례 3 – 테이블 간 조인순서 제어

SELECT A.RESNO, A.GRENTDT, B.WEDDT FROM EMP_MASTER A, EMP_DETAIL B WHERE A.RESNO = B.RESNO AND RTRIM(A.GRENTDT) LIKE '1990%'

AND B.WEDDT LIKE '200210%';

Internal Suppressing – 연산식(Expression Evaluation)

VARCHAR2 or CHAR to NUMBER

VARCHAR2 or CHAR to DATE

간단한 연산식 Comm + ‘500’ 논리비교 연산식 Bonus > Sal / ‘10’ 함수호출 MOD (Sal, ‘1000’)

서로 다른 자료 형 간의 비교 시 발생

WHERE절 조건 WHERE Hiredate = ‘2003-01-01’

WHERE절 조건 WHERE Rowid = ‘AAAAaoAATAAAADAAA’

WHERE 문자형 칼럼(RESNO, VARCHAR2) = 숫자정보 (eg) WHERE RESNO = 7402191550521

WHERE TO_NUMBER(RESNO) = 7402191550521

Internal Suppressing – 할당(Assignment)

 VARCHAR2 or CHAR to NUMBER

 NUMBER to VARCHAR2

 DATE to VARCHAR2

 ROWID to VARCHAR2

 HEX to VARCHAR2

 VARCHAR2 or CHAR to DATE

 VARCHAR2 or CHAR to ROWID

 VARCHAR2 or CHAR to HEX

 variable := expression

 INSERT INTO table VALUES (expression1, expression2, ...)

 UPDATE table SET column = expression

 SELECT column INTO variable FROM table

4 외부적 변형(External Suppressing)

5 내부적 변형(Internal Suppressing)

반응형

'it' 카테고리의 다른 글

String 메소드 / String함수  (0) 2023.03.28
스프링 개발환경구축 (6-3) SVN 용어 요약  (0) 2023.03.27
컴퓨터 프로그램  (0) 2023.03.25
파이썬 상속이란?  (0) 2023.03.24
데이터베이스 언어  (0) 2023.03.22
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함