SQL의 OBJECT종류 : 인덱스(Index), 시노님(Synonym)

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)구조

https://webcoding.tistory.com/entry/SQL-%EC%9D%B8%EB%8D%B1%EC%8A%A4

참고링크 : B Tree (Balanced Tree) 인덱스 검색 절차

  • 예시 :
    • 인덱스가 없는 컬럼을 기준으로 작업을 요청 -> full table scan작업방식 : 처리속도가 느리다.
    • 인덱스가 있는 컬럼 -> index scan작업방식 : 처리속도가 훨씬 빠르다.

인덱스생성(create index) 과 수정과 삭제.

  1. 자동생성 : PK 또는 UNIQUE 제약조건이 정의된 컬럼에 자동 생성됨.
  2. 수동생성 : 행에 엑세스하는 속도를 높이기 위해 인덱스 생성 가능.
1
2
3
4
5
6
7
8
9
10
//생성 기본
create index 인덱스명
on 테이블명(컬럼명);

//수정 기본
alter index 인덱스명
on 테이블명(칼럼명);

//삭제 기본
drop index 인덱스명;




시노님(Synonym) = 동의어

  • 객체에 다른 이름을 부여해 주는 object
  • 엘리야스와 뭐가 다를까?
    • 테이블 엘리야스는 쿼리구문안에서만 유효. 쿼리가 끝나면 사라진다.
    • 시노님을 이용하면 DB가 켜져있는 내내 다양한 곳에서 사용가능
  • 하나의 객체에 시노님이 여러개 부여할 수 있을까?
    • 가능!

시노님사용법

1
2
3
4
5
6
7
8
9
10
//생성 기본
create synonym 시노님명
for 원본object명;

//생성 예시
create synonym d_sum
for dept_sum_vu;

//삭제 기본
drop synonym d_sum;