제5절 데이터베이스 구조와 성능
1. 슈퍼타입/서브타입 모델의 성능고려 방법
(1) 슈퍼/서브타입 데이터모델의 개요 : Extended ER모델이라고 부른다. 업무를 구성하는 데이터의 특징을 공통점과 차이점을 고려하여 효과적으로 표현할 수 있기 때문에 자주 쓰인다.
(2) 슈퍼/서브타입 데이터 모델의 변환
데이터의 양은 데이터량이 소량일 경우 성능에 영향을 미치지 않기 때문에 데이터처리의 유연성을 고려하여 가급적 1:1 관계를 유지하는 것이 바람직하다. 그러나 데이터용량이 많아지는 경우 그리고 해당 업무적인 특징이 성능에 민감한 경우는 트랜잭션이 해당 테이블에 어떻게 발생되는지에 따라 3가지 변환방법을 참조하여 상황에 맞게 변환하도록 해야 한다.
(3) 슈퍼/서브타입 데이터 모델의 변환 기술
- 개별로 발생되는 트랜잭션에 대해서는 개별 테이블로 구성
- 슈퍼+서브타입에 대해 발생되는 트랜잭션에 대해서는 슈퍼+서브타입 테이블로 구성
- 전체를 하나로 묶어 트랜잭션이 발생할 때는 하나의 테이블로 구성
- 위 3가지의 방식을 트랙잭션의 유형에 따라 잘 구분하여 선택하여야 한다.
2. 인덱스 특성을 고려한 PK/FK 데이터베이스 성능향상
(1) PK/FK 칼럼 순서와 성능개요
- 인덱스 : 데이터 조회시 가장 효과적으로 처리 될 수 있도록 접근경로를 제공하는 오브젝트
- 여러 개의 속성이 하나의 인덱스로 구성되어 있을 때 앞쪽에 위치한 속성의 값이 비교자로 있어야 인덱스가 좋은 효율을 나타낼 수 있다.
- 앞쪽에 위치한 속성 값이 가급적 ‘=’ 아니면 최소한 범위 ‘BETWEEN’ ‘< >’ 가 들어와야 인덱스를 이용할 수 있다.
- PK의 순서를 인덱스 특징에 맞게 고려하지 않고 바로 그대로 생성하게 되면, 테이블에 접근하는 트랜잭션의 특징에 효율적이지 않은 인덱스가 생성되어 있으므로 인덱스의 범위를 넓게 이용하거나 Full Scan을 유발하게 되어 성능이 저하된다고 정리할 수 있다.
3. 물리적인 테이블에 FK제약이 걸려있지 않을 경우 인덱스 미생성으로 성능 저하
- 물리적인 테이블에 FK 제약 걸었을 때는 반드시 FK 인덱스를 생성하도록 하고 FK 제약이 걸리지 않았을 경우에는 FK 인덱스를 생성하는 것을 기본정책으로 하되 발생되는 트랜잭션에 의해 거의 활용되지 않았을 때에만 FK 인덱스를 지우는 방법으로 하는 것이 적절한 방법
'자격증 > SQLD' 카테고리의 다른 글
SQLD 정리 / 과목 2 SQL 기본 및 활용 / 제1장 SQL 기본 / 제1절 관계형 데이터베이스 개요 (0) | 2021.05.26 |
---|---|
SQLD 정리 / 과목 1 데이터 모델링의 이해 / 제2장 데이터 모델과 성능 / 제6절 분산 데이터베이스와 성능 (0) | 2021.05.22 |
SQLD 정리 / 과목 1 데이터 모델링의 이해 / 제2장 데이터 모델과 성능 / 제4절 대량 데이터에 따른 성능 (0) | 2021.05.22 |
SQLD 정리 / 과목 1 데이터 모델링의 이해 / 제2장 데이터 모델과 성능 / 제3절 반정규화와 성능 (0) | 2021.05.22 |
SQLD 정리 / 과목 1 데이터 모델링의 이해 / 제2장 데이터 모델과 성능 / 제2절 정규화와 성능 (0) | 2021.05.22 |