데이터 모델과 성능
① 대량의 데이터에 따른 성능
대량의 데이터의 문제점
- 로우체이닝 : 로우 길이가 너무 길어 두개 이상의 블록에 걸쳐 하나의 로우가 저장되는 현상
- 로우마이그레이션 : 데이터 블록에서 수정이 발생 시 해당 데이터 블록에 저장하지 못하고, 다른 블록의 빈공간에 저장하는 방식
대량데이터 저장의 성능 향상법 (파티셔닝 기법)
- RANGE PARTITION - 가장 많이 사용, 날짜/숫자값으로 분리가 가능
- LIST PARTITION - 지점, 사업소, 핵심적인 코드값 등으로 PK가 구성되어 있는
- 경우 사용, 보관주기에 따른 삭제기능X
- HASH PARTITION - 해쉬알고리즘이 적용되어 테이블이 분리, 설계자는 테이블에 데이터가 정확하게 들어갔는지 확인하기 어려우며(위치 알수없음) 보관주기에 따른 삭제기능X
②슈퍼/서브타입 데이터모델
슈퍼/서브타입 데이터모델
: 공통부분을 슈퍼타입으로 모델링하고, 공통으로부터 상속받아 다른 엔티티와 차이가 있는 속성에 대해서는 별도의 서브엔티티로 구분하여 업무의 모습을 정확하게 표현 -> 논리적 데이터모델에서 이용되며 분석단계에서 많이 쓰임
슈퍼/서브타입에 대한 변환을 잘못할 경우 나타나는 문제점
- 트랜잭션은 일괄로 처리하나 테이블은 개별로 유지되어 union연산에 의한 성능저하
- 트랜잭션은 서브타입 개별로 처리하나,테이블은 하나로 통합되어있어 성능저하
- 트랜잭션은 항상 슈퍼+서브타입을 공통으로 처리하나, 개별로 유지되어있거나 하나의 테이블로 집약되어 있어 성능저하
데이터 양에 따른 바람직한 데이터모델
소량 데이터일 경우 | 대량 데이터일 경우 |
성능에 영향을 미치지 않기 때문에 가급적 1:1관계를 유지하는 것이 바람직 |
- 개별발생되는 트랜잭션은 개별테이블 구성 - 슈퍼+서브타입에 발생되는 트랜잭션은 슈퍼+서브타입테이블로 구성 - 전체를 하나로 묶어 트랜잭션이 발생할땐 하나의 테이블로 구성 |
③ PK/FK 칼럼 순서와 성능개선
PK
- 가급적 = 아니면 BETWEEN, <,>가 들어와야 함
FK
- 물리적 테이블에 FK제약을 걸었을 때는 반드시 FK인덱스 생성
- FK제약이 걸리지 않았을 경우에는 FK인덱스를 생성하는것을 기본정책으로 하되 거의 활용되지 않을 때 FK인덱스 삭제
④분산데이터베이스와 성능
분산데이터베이스란?
: 여러곳으로 분산되어 있는 데이터베이스를 하나의 가상시스템으로 사용할 수 있도록 한 데이터베이스
분산데이터베이스의 투명성
- 분할투명성, 위치투명성, 지역사상투명성, 중복투명성, 장애투명성, 병합투명성
분산데이터베이스의 장단점
장점 | 단점 |
- 지역 자치성, 점증적 시스템용량확장 - 효율성과 융통성 - 빠른 응답속도와 통신비용 절감 - 데이터의 가용성과 신뢰성 증가 - 시스템규모의 적절한 조절 - 각 지역 사용자의 요구수용 증대 |
- 소프트웨어 개발비용/ 처리비용 - 오류의 잠재적 증대 - 설계 관리의 복잡성과 비용 - 불규칙한 응답속도 - 통제의 어려움 - 데이터무결성에 대한 위험 |
분산데이터의 가치
- 통합된 데이터베이스에서 제공할 수 없는 빠른성능을 제공한다
- 원거리 또는 다른 서버에 접속하여 처리하므로, 네트워크 부하 및 트랜잭션 집중에 따른 성능저하의 원인을준산된 데이터베이스 환경을 구축하므로 빠른 성능을 제공
분산데이터베이스 적용기법
- 테이블 위치 분산, 테이블 분할분산, 테이블 복제분산, 테이블 요약분산
분산설계가 효과적인 경우
- 성능이 중요한 사이트
- 공통코드, 기준저옵, 마스터데이터 등에 대해 분산환경을 구성하면 성능이 좋아짐
- 실시간 동기화가 요구되지 않는 경우
- 특정서버에 부하가 집중이 될 때 부하를 분산할때 좋다.
- 백업 사이트를 구성할 때 간단하게 분산기능을 적용하여 구성 가능
'DB > SQLD' 카테고리의 다른 글
[SQLD] SQL기본 - 명령어 (0) | 2022.05.13 |
---|---|
[SQLD] 정규화, 반정규화 (0) | 2022.05.08 |
[SQLD] 데이터모델링 3요소 + 식별자 (0) | 2022.05.07 |
[SQLD] 데이터모델링의 이해 (0) | 2022.05.05 |
댓글