인덱스 : 빠른 검색을 위한 기능
1
2
3
4
5
6
7
8
|
16. 인덱스:빠른 검색을 위해
-장점:검색속도, 시스템전체성능 향상
-단점:추가공간필요, 생성시 시간소요, 자료 변경이 잦을경우 성능저하
-생성 create index 인덱스이름 on 테이블명(컬럼명)
-삭제 drop index 인덱스이름
|
cs |
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
--index
--어느 테이블에 어떤 인덱스를 걸었는지만 확인 가능
--어느 컬럼에 걸었는지 알수없음
desc user_indexes;
--어느 테이블, 컬럼에 인덱스를 걸었는지 확인하는 방법
desc user_ind_columns;
select index_name, index_type, table_owner, table_name, table_type
from user_indexes;
--데이터 딕셔너리 뷰로 인덱스의 생성 유무 확인
select index_name, table_name, column_name
from user_ind_columns;
--인덱스 기능을 확인하기 위한 테이블 생성
create table emp02
as
select * from emp;
--여러번 실행해서 자료 많이 생성
insert into emp02 select * from emp02;
select count(*) from emp02;
--인덱스 기능 확인을 위해 특정 자료 추가
insert into emp02(empno, ename)
values(1111,'hong');
--인덱스 생성 이전 실행 속도(0.066초 소요)
--생성 이후 실행속도(0.001~2초)
select distinct empno, ename
from emp02
where ename = 'hong';
--인덱스 생성해두면 위 검색시 (0.001~2초 소요)
create index index_emp02_ename
on emp02(ename);
--많이쓰면 메모리 효율 안좋고, 자료 구조가 변경 될 경우는 별로 좋지않다.
select *
from user_ind_columns
where table_name in('EMP02');
--인덱스 삭제
drop index index_emp02_ename;
--다른 인덱스 생성
create index idx_emp02_job
on emp02(job);
--인덱스 조회
select index_name, table_name, column_name
from user_ind_columns
where table_name in('EMP02');
select * from user_ind_columns
where table_name = 'EMP02';
--인덱스는 검색 속도를 향상시키지만 계획성 없이
--너무 많은 인덱스를 지정하면 오히려 성능 저하가 발생한다.
|
cs |
반응형
'2019 > ORACLE' 카테고리의 다른 글
SQL PLSQL Procedure (0) | 2019.11.26 |
---|---|
SQL Sequence (0) | 2019.11.26 |
SQL 가상테이블 뷰(추후수정) (0) | 2019.11.26 |
SQL 제약조건(추후수정) (0) | 2019.11.26 |
SQL DDL (추후수정) (0) | 2019.11.26 |