반응형
Function-Based Index (FBI)란? Oracle 인덱스 최적화 실전 가이드
Oracle에서는 WHERE 조건절에 함수가 사용되면 기존 인덱스를 타지 않는 문제가 있습니다.
이럴 때 사용하는 것이 바로 Function-Based Index (FBI)입니다.
✅ Function-Based Index란?
인덱스를 함수를 적용한 결과값 기준으로 생성하는 특수 인덱스입니다.
예시)
-- 일반 인덱스는 적용 안됨
SELECT * FROM USER_TABLE WHERE UPPER(USER_ID) = 'ADMIN';
-- 해결 방법
CREATE INDEX IDX_USER_UPPER ON USER_TABLE(UPPER(USER_ID));
✅ 사용 시 주의사항
- 인덱스 생성 시 함수 내부 값이 NULL이면 제외됨
- 쿼리에서도 인덱스와 동일한 함수 형식으로 작성해야 적용됨
- 통계 정보 업데이트 필수 (ANALYZE TABLE)
📌 실제 사용 예
CREATE INDEX IDX_DATE_TRUNC ON SALES_TABLE(TRUNC(SALE_DATE));
→ 이후 쿼리에서 TRUNC 함수 사용할 경우 이 인덱스가 자동 적용됩니다.
✅ 마무리
Function-Based Index는 쿼리 성능을 획기적으로 개선할 수 있는 수단입니다.
다만 적용하려는 함수의 사용 빈도와 정확한 형태 일치 여부를 반드시 검토해야 합니다.
🔔 다음 글 예고
[Oracle 인덱스 힌트 사용법 (INDEX, FULL, NO_INDEX)]
반응형
'웹개발 > Oracle' 카테고리의 다른 글
| Oracle INDEX 힌트 완벽 가이드 (INDEX, FULL, NO_INDEX 실전 예제 포함)👉 실행계획을 바꾸는 오라클 힌트 사용법 (0) | 2025.07.01 |
|---|---|
| Oracle에서 WHERE 조건에 인덱스가 안 타는 이유와 해결법 (실전 예제 포함) (0) | 2025.07.01 |