개발/DB

[오라클(oracle)] 파티션 테이블을 개념(테이블 파티셔닝)

Mr.mandu. 2019. 10. 21. 23:31

안녕하세요.

오라클의 파티션 테이블에 대해 포스팅하고자 합니다.

저도 자세히 모르기 때문에 하나씩 적어가며 정리하고 있습니다.

바로 시작하겠습니다.


오라클 테이블에서 중요하고도 많이 사용되는 형태의 테이블 입니다.


모든 컴퓨터의 작동 원리는 동일합니다.

평소에 데이터를 파일에 저장해 두고 해당 데이터가 수정되거나 조회되는 경우 메로리로 복사한 후 메모리에 작업하게 됩니다.

이 공간을 일반적으로 버퍼(Buffer)라고 부릅니다.

이렇게 작업을 하는 이유는 디스크 vs 메모리 처리속도를 비교하였을때 메모리에서의 처리속도가 월등히 빠르기 때문입니다.


오라클에서는 이때 사용하는 메모리를 Database Buffer Cache(데이터베이스 버퍼 캐시)라고 합니다.

Database  Buffer Cache라는 공간을 Tablespace(테이블스페이스)라는 논리적인 공간으로 나누어서 사용하게 됩니다.


즉, 오라클에서의 작업은 평소에는 디스크의 데이터 파일에 내용을 안전하게 저장하고 있다가 필요할 경우 

메모리의 Tablespace라는 공간으로 해당 티이블을 복사해 놓고 작업합니다.


예시)

백화점을 예로 들면 손님이 찾는 모든 물건은 매장에서 판매 됩니다.

매장 = Tablespace

창고 = 데이터 파일

손님이 찾는 물건 = 테이블, 인덱스 등의 오브젝트


메모리에 해당 테이블이 없을 경우 데이터 파일에서 해당 데이터를 찾아서 메모리로 가져온 후 작업을 하게 되는데

만약 하나의 데이터 파일에 아주 많은 대량의 데이터가 들어가 있을 경우 문제가 발생 됩니다.

찾기도 어렵고 관리하기도 어렵기 때문입니다.

그래서 작은 것을 여러 개 만들어서 데이터를 분산시키는 기법이 탄생하게되었는데 이 기법을 테이블 파티셔닝 이라고 합니다.

추가적인 예시로 초등학생 등의 학생들의 수가 너무 많아서 여러개의 반으로 나누어서 관리하는것도 같은 방법이네요.


저는 현재 오라클 11g 버전을 사용하고 있기 때문에 11g 버전을 기준으로 하겠습니다.

오라클 11g에 지원 또는 추가된 Partition 종류 입니다.


Partition 종류

○ Range, list hash partitioning

○ Extended composite partitioning

   - range( -list, -hash, range) 
   - list( -range, -list, -hash)
   - interval( -range, -list, -hash)

○ Interval partitioning

○ REF partitioning

○ Virtual column based partitioning

○ Enable infinite partitioning

○ Design possibilities and boost manageability



간략하게 파티셔닝의 개념만 알아 보았습니다.
종류를 적긴했지만....전 아직 모릅니다.
이제부터 하나씩 알아나갈 예정 입니다.
험난한 여정이 될것 같군요.......미리 내용만 봐도 여러 실습과 개념들이 보입니다.
그럼 모두 고생하세요.