제3절_반정규화와_성능
2012.03.04 02:02
제3절 반정규화와 성능
1.반정규화를 통항 성능향상 전략
가.반정규화의 정의
반정규화 : 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리등을 수행하는 데이터 모델링 기법.
반정규화를 기술적으로 수행하지 않은경우 다음과 같은 현상이 발생할 수 있음
- 성능이 저하된 데이터베이스가 생성될 수 있다.
- 구축단계나 시험단계에서 반정규화를 적용할 때 수정에 따른 노력비용이 많이 들게 된다.
무분별하게 칼럼의 반정규화를 많이 하게 되는 것은 데이터에 대한 무결성을 깨드리는 결과를 초래함. → 무결성을 보장할 수 있는 방법을 고려한후 반정규화를 해야함
1.반정규화 대상 조사
- 자주 사용되는 테이블에 접근하는 프로세스의 수가 많고 항상 일정한 범위만을 조회하는 경우
- 테이블에 대량의 데이터가 있고 대량의 데이터 범위를 자주 처리하는 경우에 처리범위를 일정하게 줄이지 않으면 성능을 보장할 수 없을 경우
- 통계성 프로세스에 의해 통계 정보를 필요로 할때 별도의 통계테이블을 생성한다.
- 테이블에 지나치게 많은 조인이 걸려 데이터를 조회하는 작업이 기술적으로 어려운 경우
- 지나치게 많은 조인이 걸린경우 → view를 사용한 단순화
- 대량의 데이터 처리 → 파티션 or 클러스터
- 어플리케이션 레벨에서 중간 데이터 캐쉬
가.테이블 반정규화
나.칼럼 반정규화
다.관계반정규화
3.정규화가 잘 정의된 데이터 모델에서 성능이 저하될 수 있는경우
가장 최근에 변경된 전화번호, 메일주소, 위치를 가져오는 쿼리
SELECT A.공급자명, B.전화번호, C.메일주소, D.위치
FROM 공급자 A, (SELECT X.공급자번호, X.전화번호
FROM 전화번호 X, (SELECT 공급자번호, MAX(순번) 순번
FROM 전화번호
WHERE 공급자번호 BETWEEN '1001' AND '1005'
GROUP BY 공급자번호) Y
WHERE X.공급자번호 = Y.공급자번호
AND X.순번 = Y.순번) B,
(SELECT X.공급자번호, X.메일주소
FROM 메일주소 X, (SELECT 공급자번호, MAX(순번) 순번
FROM 메일주소
WHERE 공급자번호 BETWEEN '1001' AND '1005'
GROUP BY 공급자번호) Y
WHERE X.공급자번호 = Y.공급자번호
AND X.순번 = Y.순번) C,
(SELECT X.공급자번호, X.위치
FROM 위치 X, (SELECT 공급자번호, MAX(순번) 순번
FROM 위치 WHERE 공급자번호 BETWEEN '1001' AND '1005'
GROUP BY 공급자번호) Y
WHERE X.공급자번호 = Y.공급자번호
AND X.순번 = Y.순번) D
WHERE A.공급자번호 = B.공급자번호
AND A.공급자번호 = C.공급자번호
AND A.공급자번호 = D.공급자번호
AND A.공급자번호 BETWEEN '1001' AND '1005'
가장 최근 값을 반정규화함
4.정규화가 잘 정의된 데이터 모델에서 성능이 저하된 경우
서버B에 연계테이블의 부서명을 위해 서버 A의 부서 테이블과 조인이 필요한경우
→ DB LINK를 통해 조회함으로써 성능상 문제 발생
반정규화
부서명을 서버B의 연계테이블에 반정규화함으로써 불필요하면 DB LINK 조인 방지
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
18 |
제5절_WHERE_절
![]() | 보라빛고양이 | 2012.03.10 | 15070 |
17 | 제4절_TCL(TRANSACTION_CONTROL_LANGUAGE) | 보라빛고양이 | 2012.03.10 | 8338 |
16 | 제3절_DML(DATA_MANIPULATION_LANGUAGE) | balto | 2012.03.09 | 7037 |
15 |
제2절_DDL(DATA_DEFINITION_LANGUAGE)
[1] ![]() | balto | 2012.03.09 | 11935 |
14 | 제1절_관계형_데이터베이스_개요 | balto | 2012.03.09 | 10647 |
13 | 제5절_데이터베이스_구조와_성능 | 오예스 | 2012.03.07 | 6268 |
12 | 제4절_대량_데이터에_따른_성능 | 오예스 | 2012.03.07 | 7252 |
» |
제3절_반정규화와_성능
![]() | ljw | 2012.03.04 | 15483 |
10 |
제2절_정규화와_성능
![]() | ljw | 2012.03.04 | 10576 |
9 |
제1절_성능_데이터_모델링의_개요
![]() | ljw | 2012.03.04 | 44725 |
8 | 제4절_관계(Relationship) [1] | 실천하자 | 2012.03.04 | 13216 |
7 | 제3절_속성(Attribute) | 실천하자 | 2012.03.04 | 7434 |
6 | 제2절_엔터티(Entity) | 실천하자 | 2012.03.04 | 9875 |
5 | 제1절_데이터_모델의_이해 | 실천하자 | 2012.03.03 | 22777 |
4 |
제5절_식별자
![]() | ljw | 2012.03.03 | 19131 |
3 |
Front Page
![]() | 운영자 | 2012.02.20 | 186898 |
2 | 제3절_조인_수행_원리 | 실천하자 | 2012.04.11 | 7163 |
1 | 제3절_조인_기본_원리 | 보라빛고양이 | 2012.05.30 | 4108 |