본문 바로가기
컴소니/DB

오라클 DBMS 공부 6일차 - 인덱스와 뷰

by 금소니 2020. 3. 30.
반응형

#65

1. 인덱스란?

테이블에 저장되어 있는 데이터를 좀 더 효율적이고 빠르게 찾기 위해 사용합니다.

인덱스 컬럼의 데이터에 대한 인덱스 정보가 별도 저장되고 오라클 DBMS에서는 자동으로 인덱스를 검색하여 데이터를 조회합니다.

 

2. 인덱스의 종류

1) B-트리 인덱스

B-트리 알고리즘을 사용한 인덱스로써 가장 일반적으로 사용하는 인덱스입니다.

트리구조로 되어 있으며 상단에는 루트가 있고 순차적으로 정렬된 키값을 가지고 있습니다.

구조는 위와 같으며, 최상단 부터 값을 찾기위해 분기됩니다.

루트 블록과 브랜치 블록은 분기를 하며, 리프 블록에는 인덱스의 데이터와 실제 데이터를 가지고 있는 행의 위치를 가리키는 값(ROWID)을 가지고 있습니다.

이를 통하여 데이터를 찾습니다.

 

2) 비트맵 인덱스

B-트리 인덱스에서는 인덱스의 데이터와 ROWID 값을 저장하고 있지만 비트맵 인덱스에서는 ROWID 값 대신에 각 키에 대한 비트맵 값을 가지고 있습니다.

이러한 경우 데이터의 값 종류가 많고 동일한 데이터가 적을 경우에 사용이 유용한 인덱스입니다.

그래서 OLTP(실시간 트랜잭션)보다는 OLAP(온라인 분석)에서 사용됩니다.

비트맵 인덱스 또한 비트리 인덱스와 같이 트리 구조를 가지고 있지만 저장하는 값에만 차이가 있습니다.

 

3. 인덱스 생성 시 고려사항

인덱스는 데이터를 조회하는데 효율적으로 빠르게 찾는다는데 장점이 있습니다.

하지만 그렇게 무조건 많이 만드는게 좋지는 않습니다.

그 이유는 데이터가 변경될 때 마다 인덱스 정보가 변경되기 때문에 데이터 변경이 자주있는 테이블이라면 인덱스가 자주 변경되어 성능저하가 발생할 수 있습니다.

또한, 데이터 양이 많지 않다면 굳이 인덱스를 만들지 않아도 빠르게 검색될 수 있어 적당한 양에 적당한 사용이 권장됩니다.

 

4. VIEW란?

테이블과 비슷하지만 구성이 다릅니다.

하나 이상의 테이블 혹은 하나 이상의 뷰의 조건과 조인을 통하여 생성된 하나의 오브젝트입니다.

뷰는 실제로 데이터를 포함하지 않지만 해당 뷰를 구성하고 있는 테이블에서 데이터를 불러옵니다.

 

5. VIEW의 사용 이유

1) 데이터 보안

뷰를 이용하면 데이터와 컬럼만 공개가 가능하고 특정 테이블에 대한 정보는 숨길 수 있습니다.

 

2) 쿼리 단순화

조회하려는 데이터가 여러 조건과 조인이 필요하여 쿼리문이 길어 진다고 하면 이를 사용할 때마다 쿼리가 복잡하고 길어질 것입니다.

이를 뷰를 통하여 단순화 시키고 슆게 이용할 수 있습니다.

 

6. VIEW의 장점과 단점

1) 장점

  - 데이터 보안

  - 쿼리 단순화

  - 데이터 관리

  - 데이터 독립성

 

2) 단점

  - 독립적인 인덱스 사용 불가능

  - 정의된 뷰는 변경 불가능

 

7. Materialized VIEW

MView라고 부르며 다량의 데이터를 계산하고 요약하는데 사용되며, 주로 데이터 웨어하우스에서 사용됩니다.

작업을 하는데 있어서 빈번한 쿼리가 존재할 수 있습니다. 이러한 쿼리를 VIEW 형싱으로 저장합니다.

MView를 사용하면 쿼리의 실행속도를 증가시킬 수 있습니다.

일반 View와 다르게 MView는 view의 결과값을 실제로 가지고 있습니다.

 

8. Inline VIEW

FROM 절에서 사용되는 서브쿼리로써, FROM 절에서 원하는 데이터를 조회하여 가상의 집합을 만들어 조회할 때 사용합니다.

여러 개의 테이블에서 특정 컬럼만 뽑아와 데이터를 추출하는데 있어 유용하게 사용될 수 있습니다.

반응형

댓글