제 5절 데이터베이스 구조와 성능
1. 슈퍼타입/서브타입 모델의 성능 고려 방법
가. 슈퍼/서브타입 데이터모델의 개요
: 업무를 구성하는 데이터의 특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현
- 슈퍼타입 : 공통으로 가진 부분
- 서브타입 : 슈퍼타입으로부터 상속받아 개별의 특성이 있는 속성
나. 슈퍼/서브타입 데이터 모델의 변환
: 데이터 용량이 많아지는 경우 그리고 해당 업무적인 특징이 성능에 민감한 경우는 트랜잭션이 해당 테이블에 어떻게 발생되는지에 따라 3가지 변환방법을 참조하여 상황에 맞게 변환
다. 슈퍼/서브타입 데이터 모델의 변환 기술
1) 개별로 발생되는 트랜잭션에 대해서는 개별 테이블로 구성(1:1 타입)
: 데이터 량이 대량으로 존재하는 경우에 공통으로 이용하는 슈퍼타입의 속성 수가 너무 많아져 디스크I/O가 많아지는 것을 방지하기 위해 각각을 1:1관계로 가져가는 경우
2) 슈퍼타입+서브타입에 대해 발생하는 트랜잭션에 대해서는 슈퍼타입+서브타입 테이블로 구성(Plus Type)
: 슈퍼타입와 서브타입을 묶어서 트랜잭션이 발생하는 업무적 특성을 가질 때 슈퍼타입 + 각 서브타입을 하나로 묶어 별도의 테이블을 구성하는 게 효율적
3) 전체를 하나로 묶어 트랜잭션이 발생할 때는 하나의 테이블로 구성(Single Type)
: 슈퍼타입과 서브타입의 테이블들을 하나로 묶었을 때 각각의 속성 별로 제약사항을 정확하게 지정하지 못할지라도 성능향상이 필요하다면 하나의 테이블로 묶어서 만든다.
2. 인덱스 특성을 고려한 PK/FK 데이터베이스 성능향상
가. PK/FK 칼럼순서와 성능개요
: 테이블에 발생되는 트랜잭션의 조회 패턴에 따라 PK/FK칼럼의 순서를 조정
나. PK칼럼의 순서를 조정하지 않으면 성능의 저하 이유
: 테이블에 접근하는 트랜잭션의 특징에 효율적이지 않은 인덱스가 생성되었음으로 인덱스의 범위를 넓게 이용하거나 Full Scan을 유발하여 성능이 저하
다. PK순서를 잘못 지정하여 성능이 저하된 경우 - 간단한 오류
라. PK순서를 잘못 지정하여 성능이 저하된 경우 - 복잡한 오류
: 앞쪽위치한 속성의 값이 가급적 ‘=’ 아니면 최소한의 범위 ‘BETWEEN’, ‘<>’가 있어야 효율적
3. 물리적인 테이블에 FK제약이 걸려있지 않을 경우 인덱스 미생성으로 성능저하
: 물리적인 테이블에 FK를 사용하지 않아도 데이터 모델관계에 의해 상속받는 FK속성들은 SQL WHERE절에서 조인으로 이용되는 경우가 많이 있으므로 FK인덱스를 생성해야 성능이 좋은 경우가 빈번
'자격증 > SQLD' 카테고리의 다른 글
[#SQLD] 제 1절 관계형 데이터베이스 개요 (0) | 2023.02.20 |
---|---|
[#SQLD] 제 6절 분산 데이터베이스와 성능 (0) | 2023.02.20 |
[#SQLD] 제 4절 대량 데이터에 따른 성능 (0) | 2023.02.13 |
[#SQLD] 제 2절 정규화와 성능 (0) | 2023.02.09 |
[#SQLD] 제 1절 성능데이터 모델링의 개요 (0) | 2023.02.09 |
댓글