▣ 함수 기반 인덱스(Function-based indexing) 오라클
● 함수 기반 인덱스의 장점
- 계산 값에 대한 인덱스 스캔 가능
- 인덱스 컬럼이 Where 절에서 가공 또는 변경돼도 인덱스 이용 가능
함수 기반 인덱스를 이용하면 계산 값을 도출하는 SQL도 인덱스를 이용할 수 있음
SQL의 계산 값이 중요한 업무라면 함수 기반 인덱스를 통해 성능을 향상시킬 수 있음
● 함수 기반 인덱스의 단점
- DML시 부하 발생
- 인덱스의 유연성 저하
함수 기반 인덱스는 Where 조건에 해당하는 연산자를 그대로 사용할 경우에만 가능하므로
다른 일반 엑세스 유형을 수용하기에 적합하지 않아 유연성이 많이 떨어짐
CREATE [UNIQUE] INDEX 인덱스 명
ON 테이블 명(컬럼 명, 컬럼 명 | 함수 명, 함수 계산식);
2017년 62번

WHERE ((Salary * CommissionPercent) + Salary) > 15000;
조건절에 컬럼값을 그대로 사용하지 않고 가공해서 사용하고 있으므로 일반적인 인덱스를 활용할 수 없음
이런 유형의 질의 사용 빈도가 높다면 인덱스를 생성할 때부터 미리 가공된 함수기반 인덱스를
사용하는 것이 효율적임
2019년 75번

정답 : 2번
한 릴레이션 내에 존재하는 여러 속성들을 묶어 하나의 인덱스로 만든 것을 결합 인덱스라고 함
<결합 인덱스 사용조건>
- 선행 속성이 WHERE 조건으로 제공되지 않으면 해당 인덱스 사용 불가
- 결합 인덱스는 선행 속성이 "="로 비교되어야 해당 속성도 인덱스 사용
- 인덱스 속성이 함수, 수식 등으로 가공되면 인덱스 사용 불가
- NOT IN, <>, NOT LIKE 등의 부정 연산은 인덱스 사용 불가
- NULL 값은 인덱스에 참여하지 않음
'데이터베이스' 카테고리의 다른 글
유클리드(Euclidean) , 맨하탄(Manhattan) 거리측정법 (0) | 2021.09.10 |
---|---|
트랜잭션_교착상태(deadlock), 상호배제 (mutual exclusion), 점유 대기 (hold and wait), 비선점 (non preemption), 순환대기 (circular wait) (0) | 2021.09.10 |
오라클 SQL_ ANY, SOME, ALL, NOT EXISTS, NOT IN 연산, 부양가족, 사원, 평균 봉급, (0) | 2021.09.10 |
오라클 COUNT, 널(NULL), 공백 SQL 질의 (0) | 2021.09.09 |
조인, 서브쿼리, 집합 연산 SQL 질의 문제(오라클) (0) | 2021.09.09 |