문서의 이전 판입니다!
- 테이블과 인덱스 분리 : 관계형 데이터베이스에서 일반적인 구조.
- 분리형 테이블의 구조
[ fig.1 Database Structure(ORACLE 9i Database Administration Fundmentals I)]
• D.D. : Data Dictionary
• R.B. : RollBack
• tablespace : 논리적인 저장구조(부지)
• segment : 테이블스페이스를 용도별로 구분(건물 부지, 운동장 부지)
• datafile : 물리적인 데이터파일(대지)
[fig. 2 Tablespace Structure ]
【 원본 : http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/physical.htm#g21431 】
· 파티션된 테이블은 2개 이상의 테이블스페이스에 걸쳐서 저장 될 수 있다.
· 개별 파티션이나 파티션되지 않은 테이블들은 반드시 하나의 테이블스페이스에만 저장된다.
• Rowid 위치 : 인덱스
• 데이터 파일 번호 : 상대적인 번호. 테이블스페이스내에서 부여되는 번호.
• 오브젝트 번호 : 유일한 번호. rowid를 짧게 구성할 수 있게 한다.
• 클러스터링 팩터 : 인덱스의 컬럼값으로 정렬되어 있는 인덱스 로우의 순서와 테이블에 저장되어 있는 데이터 로우의 위치가 얼마나 비슷한 순서로
저장되어 있느냐에 대한 정도를 나타냄.
“인덱스에서 많은 로우(row)를 액세스하더라도 테이블의 블록 액세스를 적게 하는 경우“를 클러스터링 팩터가 좋다고 할 수 있다.
응집 : 자주 액세스하는 것들이 유사한 위치에 모여 있도록하는 것
• index1 : 7개의 로우를 액섹스하지만, 2개의 블록을 액섹스하므로 클러스터 팩터가 좋음
• index2 : 3개의 로우를 액섹스하는데 데이터 블록은 3개나 액세스하므로 클러스터 팩터가 좋지 않음
1) 범위 처리가 잦은 컬럼(들)로 정렬하여 저장한다.
2) 1)번의 방법이 불가능 할 경우 : 병렬 처리로 저장
3) 수행속도 향상 : 체인(chain) 감소 및 불필요한 I/O감소
4) 테이블 재생성시 기존 인덱스를 제거하거나 비활성화 시킴 : 테이블 저장 속도 향상 및 인덱스 저장 밀도 향상을 위해서