This is it. it's IT.

인덱스 본문

카테고리 없음

인덱스

응애개발자 애기 2025. 8. 28. 14:01
728x90
반응형

SELECT table_name, index_name, uniqueness, status

FROM user_indexes

WHERE TABLE_NAME = '테이블명'

ORDER BY table_name, index_name;

 

존재하는 인덱스 확인

 

인덱스(색인)

 

 

복합인덱스

 2개 이상의 컬럼으로 인덱스 구성하는 것 .... 

 컬럼 중 첫번째 컬럼이 무조건 where절 조건에 포함되어야 함.

 

 

실행계획을 분석해서 인덱스가 사용되고 있는지 아닌지 확인할 수 있음 

EXPLAIN PLAN FOR

SELECT 1

FROM table

WHERE ....... ;

 

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

 

 

 

인덱스 힌트

select 절에 /* */ 주석처리해서 힌트 주면 인덱스를 사용하는데에 DB옵티마이저가 힌트를 얻을 수 있음

보통은 자동으로 선택할수있는데 자동으로 안되는 경우 ㅇㅇ 사용

DB종류마다 문법 다름 ;;;

 

/*+ INDEX(a test_idx0) INDEX(b test_idx1) */

 

이런식으로 사용 ㅇ

index() > 오름차순

index_desc() > 내림차순

 

▷멀티라인 주석: SELECT /*+ [힌트절] */ ~
▷싱글라인 주석: --+
▷여러 개의 인덱스 힌트 사용 => /*+ [힌트절] [힌트절] ... */

 

 

 

인덱스를 사용 못하는 조건 확인

1) INDEX가 걸려있는 컬럼 절을 변형한 경우 ex) 컬럼 절에 직접 to_date()사용 .. 

2) 내부적으로 데이터 형 변환이 일어난 경우

3) 부정형으로 조건을 사용한 경우 - " a != b "이런식으로 사용하지 말고 not exist 조건 사용 혹은 > , < 로 Range확인하는 식으로 ㄱ 

4) LIKE 연산자를 사용하였을 경우 - '%' 가 맨 앞에 있으면 안탐

728x90
Comments