4절 대용량 데이터에 따른 성능
테이블 반정규화 중 테이블 분할 관련
1. 블록: 테이블의 데이터 저장 단위
2. 대량 데이터 발생으로 인한 현상: 블록 I/O 횟수 증가 → 디스크 I/O 가능성 상승 (디스크 I/O 시 성능 저하)
- 로우 체이닝(Row Chaining): 행 길이가 너무 길어 여러 블록에 걸쳐 저장되는 현상
- 로우 마이그레이션(Row Migration): 수정된 데이터가 해당 블록이 아닌 다른 블록의 빈 공간에 저장되는 현상
3.테이블 분할: 반정규화 기법
-수직분할: 칼럼 단위로 테이블을 분할하여 I/O를 감소시킴, 너무 많은 수의 칼럼이 있는 경우 사용
-수평분할: 행 단위로 테이블을 분할하여 I/O를 감소시킴
4.파티셔닝(Partitioning): 테이블 수평분할 기법, 논리적으로는 하나의 테이블이지만 물리적으로 여러 데이터 파일에 분산 저장, 데이터 조회 범위를 줄여 성능 향상
-Range Partition: 데이터 값의 범위를 기준으로 분할
-List Partition: 특정한 값을 기준으로 분할
-Hash Partition: 해시 함수를 적용하여 분할, DBMS가 알아서 분할 관리, 데이터 위치를 알 수 없음
-Composite Partition: 여러 파티션 기법을 복합적으로 사용하여 분할
※ 파티션 인덱스(Partition Index)
• Global Index, Local Index: 여러 파티션에서 단일 인덱스 사용, 파티션 별로 각자 인덱스 사용
• Prefixed Index, Non-Prefixed Index: 파티션키와 인덱스키 동일, 파티션키와 인덱스키 구분
5절 DB 구조와 성능
1.슈퍼타입/서브타입 데이터 모델 변환을 통한 성능 향상
-슈퍼타입/서브타입 데이터 모델: 속성을 할당하여 배치하는 수평 분할된 형태의 모델 (공통 속성은 슈퍼타입으로 모델링하고 차이가 있는 속성은 서브타입으로 구분됨), 변환을 통해 1) 정확하게 업무를 표현할 수 있고 2) 물리적 모델링 시 선택의 폭을 넓힐 수 있음
-변환 기준: 데이터 양, 트랜잭션 유형
-변환 기술
*1:1 타입(OneToOne type): 개별로 처리하는 트랜잭션에 대해 개별 테이블 구성, 슈퍼타입과 서브타입 각각 필요한 속성과 유형에 적합한 데이터만 가지도록 분리하여 1:1 관계를 갖도록 함
*슈퍼/서브 타입(Plus type): 슈퍼타입과 서브타입을 공통으로 처리하는 트랜잭션에 대해 슈퍼타입과 서브타입 각각의 테이블 구성
*All in One 타입(Single type): 일괄 처리하는 트랜잭션에 대해 단일 테이블 구성
1:1 타입 | 슈퍼/서브 타입 | All in One 타입 | |
특징 | 개별 테이블 유지 | 슈퍼/서브 타입 테이블 구성 | 단일 테이블 구성 |
트랜잭션 유형 | 개별 처리 | 슈퍼/서브 타입 공통 처리 | 일괄 처리 |
확장성 | 좋음 (테이블 추가 용이) |
보통 | 나쁨 |
조인 성능 | 나쁨 (조인 많이 필요) |
나쁨 (조인 많이 필요) |
좋음 |
I/O 성능 | 좋음 | 좋음 | 나쁨 (항상 전체 데이터 조회) |
관리용이성 | 나쁨 | 나쁨 | 좋음 |
2.PK/FK 칼럼 순서 조절을 통한 성능 향상: 등호 조건이나 BETWEEN 조건이 걸리는 칼럼을 앞으로 이동 (여러 조건이 있을 경우 등호 조건이 걸리는 칼럼을 선두로 이동)
3.인덱스 특성을 고려한 PK/FK DB 성능 향상: 물리적인 테이블에 FK 제약을 걸어 인덱스를 생성
6절 분산 DB 데이터에 따른 성능
1.분산 DB: 분산된 DB를 하나의 가상 시스템으로 사용할 수 있도록 한 DB, 물리적 사이트는 분산되어 있으나 논리적으로 동일한 시스템, 과거에는 위치 중심이었으나 현재는 업무 필요에 따라 분산 설계
-설계 방식
*상향식: 지역 스키마 작성 후 전역 스키마 작성
*하향식: 전역 스키마 작성 후 지역사상 스키마 작성
-장단점
* 신뢰성과 가용성 증가, 빠른 응답 속도와 통신비용 절감, 용량 확장 용이
* 관리 및 통제 어려움, 데이터 무결성 관리 어려움, S/W 개발 비용 및 처리 비용 증가, 불규칙한 응답 속도
2.분산 DB의 투명성 (분위지중장병행)
-분할 투명성: 하나의 논리적 관계가 분할되어 각 단편의 사본이 여러 사이트에 저장됨
-위치 투명성: 사용하려는 데이터 저장 장소가 명시되지 않아도 됨
-지역사상 투명성: 지역 DBMS와 물리적 DB 사이의 사상이 보장됨
-중복 투명성: DB 객체 중복 여부를 몰라도 됨
-장애 투명성: 구성요소(DBMS, 컴퓨터)의 장애에 무관하게 트랜잭션의 원자성이 유지됨
-병행 투명성: 다수의 트랜잭션을 동시 수행했을 때 결과의 일관성이 유지됨 병렬 아님
3.분산 DB 적용 기법
-테이블 위치 분산: 설계된 테이블의 위치를 분산함
-테이블 분할 분산(Table Fragmentation): 테이블을 쪼개서 분산함
*수평분할, 수직분할
-테이블 복제 분산(Table Replication): 동일한 테이블을 다른 지역이나 서버에서 동시 생성함, 원격지 조인을 내부 조인으로 변경하여 성능 향상
* 부분복제, 광역복제
-테이블 요약 분산(Table Summarization)
*분석요약: 사이트 별 요약정보를 본사에서 통합하여 전체 요약정보 산출
*통합요약: 사이트 별 정보를 본사에서 통합하여 전체 요약정보 산출
이렇게 1과목이 끝이 났다.
SQLD에서는 1,2과목이 시험범위인데 벌써 한 과목이 끝났다.
오늘도 화이팅!
'집에서 하는 공부 > SQLD' 카테고리의 다른 글
[SQLD]2과목.SQL 기본 및 활용-2 (0) | 2022.06.09 |
---|---|
[SQLD]2과목.SQL 기본 및 활용-1 (0) | 2022.06.08 |
[SQLD]1과목.데이터 모델과 성능-1 (0) | 2022.06.03 |
[SQLD]1과목.데이터 모델링의 이해-3 (0) | 2022.05.30 |
[SQLD]1과목.데이터 모델링의 이해-2 (0) | 2022.05.27 |