본문 바로가기
자격증/SQLD

[#SQLD] 제 5절 데이터베이스 구조와 성능

by dopal2 2023. 2. 13.
반응형

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인덱스를 생성해야 성능이 좋은 경우가 빈번

반응형

댓글