티스토리 뷰

1. 성능 데이터 모델링의 정의

 

데이터의 용량이 커질수록, 의사결정의 속도가 빨라질수록 데이터를 처리하는 속도가 빠르게 처리되어야 한다.

개발된 애플리케이션의 성능이 저하되는 경우,

개발자의 잘못된 SQL 구문 작성도 있으나 근본적으로 디자인이 잘못되어 SQL 구문을 잘 못 작성하도록 구성될 수 밖에 없는 경우도 빈번하다.

 

 

 

 * 성능이 저하되는 데이터 모델의 3 가지 경우

   (1) 데이터 모델 구조에 의해 성능 저하

   (2) 데이터가 대용량이 되서 불가피한 성능 저하

   (3) 인덱스 특성을 충분히 고려하지 않고 인덱스 생성으로 인한 성능 저하

 

 

 

▷ 성능

    : 데이터 조회의 성능을 의미.

      데이터 입력/수정/삭제 는 일시적이고 빈번하지 않고 단건 처리가 많다.

      데이터 조회는 반복적이고 빈번하며 여러 건을 처리한다.

      트랜잭션의 성격이 조회의 패턴을 가지고 있다.

      업무에 따라 입력/수정/삭제의 성능이 중요한 경우도 있다.

 

 

 

 

데이터 모델링을 할 때 어떤 작업 유형에 따라 성능 향상을 도모해야 할지 목표를 분명하게 해야,

정확한 성능 향상 모델링을 할 수 있다.

 

 

 

 

 

▷ 성능 데이터 모델링

    : 데이터베이스 성능 향상을 목적으로 설계 단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블 통합, 테이블 분할, 조인구조,

      PK, KF 등 여러가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것이다.

 

      성능 데이터 모델링이 단순히 반정규화 만을 의미하지 않는다.

      정규화를 통해서 수행할 수도 있고 인덱스의 특징을 고려해서 칼럼의 순서도 변형할 수 있다.

       

      논리적인 테이블을 물리적인 테이블로 전환할 때 데이터 처리의 성격에 따라 변환하는 방법도 있다.

 

 

 

 

성능 데이터 모델링

 

 

 

 

 

 

 


2. 성능 데이터 모델링 수행시점

 

분석 / 설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 재업무 비용을 최소화 한다.

( 성능 향상을 위한 비용은 사전에 할 수록 비용이 들지 않음. )

 

데이터의 증가가 빠를수록 성능 저하에 따른 성능 개선 비용은 기하급수적으로 증가한다.

 

 

 

성능 향상 그래프

 

 

분석 / 설계 단계에서 데이터베이스 처리 성능을 향상시킬 수 있는 방법을 주도면밀하게 고려해야 한다.

프로젝트 초기에 운영환경에 대비한 테스트 환경을 구현하고 그곳에 트랜잭션을 발생시켜 실제 성능을 테스트 해야 한다.

 

 

 

 

 

 

 

 

 


3. 성능 데이터 모델링 고려사항

▷ 고려사항 ★

    ① 데이터 모델링을 할 때 정규화를 정확하게 수행한다.

    ② 데이터베이스 용량산정을 수행한다.

    ③ 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.

    ④ 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.

    ⑤ 이력모델의 조정, PK / FK 조정, 슈퍼타입 / 서브타입 조정 등을 수행한다.

    ⑥ 성능 관점에서 데이터 모델을 검증한다.

 

 

 

대량 데이터가 처리되는 이력모델에 대해 성능고려를 하고, PK / FK 의 순서가 인덱스 특성에 따라 성능에 영향을 미치는 영향도가 크기 때문에 반드시 PK / FK 를 성능이 우수한 순서대로 칼럼의 순서를 조정해야 한다.

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

'SQL > SQLD 1과목' 카테고리의 다른 글

SQLD - 과목1. (8) 반정규화와 성능  (0) 2021.03.18
SQLD - 과목1. (7) 정규화와 성능  (0) 2021.03.18
SQLD - 과목1. (5) 식별자  (1) 2021.02.24
SQLD - 과목1. (4) 관계  (0) 2021.02.08
SQLD - 과목1. (3) 속성  (0) 2021.02.07
댓글