SQL의 OBJECT종류 : 인덱스(Index), 시노님(Synonym)
SQL의 OBJECT 종류
Object | 특징 | 사용방법 | 정의방법 |
---|---|---|---|
테이블(Table) | 행과 열의 조합으로 구성된 기본 저장단위 | select, insert, update, delete | create table, alter table, drop table, truncate table |
뷰(View) | 하나 또는 그 이상의 base테이블로부터 논리적으로 데이터를 추출한 부분집합으로 가상의 논리적인 테이블 | select, insert, update, delete | create [or replace] view, drop view |
시퀀스(Sequence) | 자동으로 고유한 숫자값을 생성해주며 주로 기본키 값을 생성하기 위해 사용 | 시퀀스명.nextval, 시퀀스명.currval | create sequence, alter sequence, drop sequence |
인덱스(Index) | 쿼리(Query) 속도를 향상시키기 위해 사용 | X | create index, alter index, drop index |
시노님(Synonym) | object에 대한 또다른 이름의 alias역할 | X | create synonym, drop synonym |
인덱스
개발자에게 table 다음으로 중요한 object!
oracle 서버에서 포인터를 사용하여 행의 검색 속도를 높이기 위해 사용하는 object.
테이블이 작거나 자주 갱신이 되는 컬럼 또는 자주 사용하지 않는 컬럼에는 인덱스 생성 권장하지 않음.
- 자주 변경되는 컬럼인 경우, 오라클은 데이터가 변경될때마다 테이블과 인덱스까지 같이 변경해줘야해서 오히려 성능저하가 생길 수 있음.
- 자주 사용하지 않는 컬럼인 경우, 인덱스도 오브젝트를 생성하는 것이기때문에 생성할 추가 공간이 필요해서 오히려 성능저하가 나타날 수 있음.
구조 : B Tree (Balanced Tree)구조
참고링크 : B Tree (Balanced Tree) 인덱스 검색 절차
- 예시 :
- 인덱스가 없는 컬럼을 기준으로 작업을 요청 ->
full table scan
작업방식 : 처리속도가 느리다. - 인덱스가 있는 컬럼 ->
index scan
작업방식 : 처리속도가 훨씬 빠르다.
- 인덱스가 없는 컬럼을 기준으로 작업을 요청 ->
인덱스생성(create index) 과 수정과 삭제.
- 자동생성 : PK 또는 UNIQUE 제약조건이 정의된 컬럼에 자동 생성됨.
- 수동생성 : 행에 엑세스하는 속도를 높이기 위해 인덱스 생성 가능.
1 | //생성 기본 |
시노님(Synonym) = 동의어
- 객체에 다른 이름을 부여해 주는 object
- 엘리야스와 뭐가 다를까?
- 테이블 엘리야스는 쿼리구문안에서만 유효. 쿼리가 끝나면 사라진다.
- 시노님을 이용하면 DB가 켜져있는 내내 다양한 곳에서 사용가능
- 하나의 객체에 시노님이 여러개 부여할 수 있을까?
- 가능!
시노님사용법
1 | //생성 기본 |