| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- spring
- nvl함수
- 1인개발
- 문서객체모델
- 그딴건없었다
- REACT
- Python
- SQL
- jstl
- java
- 자바스크립트
- 자바
- 코드 이해하기
- MySQL
- 웹 퍼블리싱
- 타입 오류
- 로그인 기능
- 값 가져오기
- 코드 가시화
- 헬생아
- jsp
- 전처리도구
- C언어
- 쿼리 오류
- react-three-fiber
- SpringBoot
- CSS
- 코드 시각화
- 렌파이
- 깃허브
- Today
- Total
This is it. it's IT.
인덱스 본문
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 연산자를 사용하였을 경우 - '%' 가 맨 앞에 있으면 안탐