기법분류 | 기법 | 내용 |
---|---|---|
테이블병합 | 1:1 관계 테이블병합 | 1:1 관계를 통합하여 성능향상 |
1:M 관계 테이블병합 | 1:M 관계를 통합하여 성능향상 | |
슈퍼/서브타입 테이블병합 | 슈퍼/서브 관계를 통합하여 성능향상 | |
테이블분할 | 수직분할 | 컬럼단위의 테이블을 디스크 I/O를 분산처리하기 위해 테이블을 1:1로 분리하여 성능향상(트랜잭션의 처리되는 유형파악이 선행되어야 함) |
수평분할 | 로우단위로 집중 발생되는 트랜잭션을 분석하여 디스크I/O 및 데이터 접근의 효율성을 높여 성능을 향상하기 위해 로우단위로 테이블을 쪼갬(관계가 없음) | |
테이블추가 | 중복테이블 추가 | 다른 업무이거나 서버가 다른 경우 동일한 테이블구조를 중복하여 원격조인을 제거하여 성능을 향상 |
통계테이블 추가 | SUM,AVG 등을 미리 수행하여 계산해 둠으로써 조회시 성능을 향상 | |
이력테이블 추가 | 이력테이블 중에서 마스터 테이블에 존재하는 레코드를 중복하여 이력테이블에 존재하는 방법 | |
부분테이블 추가 | 하나의 테이블을 전체 칼럼 중 자주 이용하는 집중화된 컬럼이 있을 경우, 디스크I/O를 줄이기 위해 해당 컬럼들을 모아놓은 별도의 반정규화된 테이블을 생성 |
반정규화 기법 | 내용 |
---|---|
중복컬럼 추가 | 조인시 성능저하를 예방하기 위해,중복된 컬럼을 위치시킴 |
파생컬럼 추가 | 트랜잭션이 처리되는 시점에 계산에 의해 발생되는 성능저하를 예방하기 위해, 미리 계산하여 컬럼에 보관 |
이력테이블 컬럼추가 | 대량의 이력데이터 처리시 불특정 일 조회나 최근 값을 조회할때 나타날 수 있는 성능저하를 예방하기 위해 기능성 컬럼(최근값여부, 시작일자,종료일자)을 추가함 |
PK에 의한 컬럼추가 | 복합의미를 갖는 PK를 단일속성으로 구성했을 때 발생되며, PK안에 데이터가 존재하지만 성능향상을 위해 일반속성으로 포함하는 방법 |
응용시스탬 오작동을 위한 컬럼 추가 | 업무적으로는 의미가 없으나, 데이터 처리시 오류로 인해 원래값으로 복구하길 원하는 경우 이전 데이터를 임시적으로 중복보관하는 방법 |
반정규화 기법 | 내용 |
---|---|
중복관계 추가 | 여러 경로를 거쳐 조인이 가능하지만, 성능저하를 예방하기 위해 추가적인 관계를 맺는 방법 |
- 강좌 URL : http://www.gurubee.net/lecture/2361
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.