INDEX - 인덱스의 내부구조는 B* 트리 형식으로 구성, 검색속도의 향상
장점 - 검색 속도가 빨라짐 ,시스템 부하를 줄여 전체성능을 향상
단점 - 추가공간 필요,인덱스생성 시간 발생,데이터 변경작업(INSERT/UPDATE/DELETE)자주 일어날 경우 오히려 성능저하
INDEX는 기본키나 유일키 를 지정하면 자동으로생성 (USER_COLUMNS,USER_IND_COLUMNS 데이터 딕셔너리 뷰에저장)
INDEX 정보 보는예
EX) SELECT INDEX_NAME , TABLE_NAME, COLUMN_NAME
FROM USER_IND_COLUMNS
WHERE TABLE_NAME_IN('EMP','DEPT');
오라클 검색 시간 측정
EX) SET TIMING ON ;결과도출 시간 나옴.
인덱스 생성법
형식 CREATE INDEX index_name ON table_name(column_name)
인덱스 삭제
형식 DROP INDEX index_name;
인덱스 생성 명령
ex) CREATE INDEX IDX_EMP01_ENAME ON EMP01(ENAME);
EX) SELECT DISTINCT EMPNO,ENAME FROM EMP01 WHERE ENAME='SYJ'//생성시 속도가 짦아졌음을 알수 있음.
EX) DROP INDEX IDX_EMP01_ENAME; //생성한 인덱스를 삭제
인덱스의 사용할때와 말아야할때
인덱스를 사용 |
인덱스를 사용하지 말아야할떄 |
테이블의 행의 수가 많을때 |
테이블에 행의수가 적을때 |
WHERE문에 해당 컬럼이 많이 사용될떄 |
WHERE문에 해당 컬럼이 자주 사용되지 않을때 |
검색 결과가 전체 데이터의 2~4%일때 |
검색 결과가 전체 데이터의 10~15%일떄 |
JOIN에 자주 사용되는 컬럼이나 NULL을 포함하는 컬럼이 많을때 |
테이블에 DML작업이 많은경우(INSERT,DELETE,UPDATE) |
인덱스는 재생성 시켜주기전까지 기존 인덱스 정보를 빈공간으로 가지고있게 된다.
재생성 명령
형식 ALTER INDEX index_name REBUILD;
EX)ALTER INDEX IDX_EMP01_DEPTNO REBUILD;
인덱스의 종류
고유와 비고유
고유 - 중복된 데이터가 없는 단일 데이터에만 선언
비고유 - 중복된 데이터가 있는 경우
형식 CREATE UNIQUE INDEX index_name ON table_name(column_name);
ex) CREATE UNIQUE INDEX IDX_DEPT01_DEPTNO ON DEPT01(DEPTNO);
한개의 컬럼으로 구성한 INDEX는 단일인덱스 두개이상의 컬럼으로 구성할시 결합 인덱스 라함.
EX) CREATE INDEX IDX_DEPT01_COM ONDEPT01(DEPTNO,DNAME);
함수기반인덱스
EX) CREATE INDEX IDX_EMP01_ANNSAL ON EMP01(SAL*12);//검색조건이 SAL*12일때 해당 인덱스를 탐
'Oracle' 카테고리의 다른 글
오라클 롤 권한을 일일이 부여하지 않고 묶음 패키지 관리자가 정의도 가능 (0) | 2014.11.13 |
---|---|
오라클 데이터베이스 보안 과 권한 (0) | 2014.11.13 |
시퀸스 SEQUENCE (0) | 2014.11.13 |
가상 테이블 뷰 (0) | 2014.11.13 |
오라클 데이터 읽기의 일관성과 락. (0) | 2014.11.12 |