본문 바로가기
자격증/SQLD

[#SQLD] 제 4절 대량 데이터에 따른 성능

by dopal2 2023. 2. 13.
반응형

4절 대량 데이터에 따른 성능

1. 대량 데이터발생에 따른 테이블 분할 개요

 : 대량의 데이터가 하나의 테이블에 집약되어 있고 하나의 하드웨어 공간에 저장되어 있으면 성능 저하 발생 => 트랜젝션 분산처리를 위해 데이터 단위에서 분할의 방법 적용 필요

-       대량의 데이터가 존재하는 테이블에 많은 트랜잭션이 발생하여 성능이 저하되는 테이블 구조에 대해 수평/수직 분할 설계를 통해 성능저하를 예방

-       수평분할 : 칼럼단위로 분할하여 I/O 경감

-       수직분할 : 로우단위로 분할하여 I/O 경감

-       로우 체이닝 : 로우길이가 너무 길어서 데이터 블록 하나에 저장되지 않고 두개 이상의 블록에 걸쳐 하나의 로우가 저장되어 있는 형태

-       로우 마이그레이션 : 데이터블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈공간을 찾아 저장하는 방식

-       로우 체이닝과 로우 마이그레이션이 발생하여 많은 블록에 데이터가 저장되면 데이터베이스메모리에서 디스크와 I?O가 발생할 때 불필요하게 I/O가 많이 발생하여 성능저하

2. 한테이블에 많은 수의 칼럼을 가지고 있는 경우

 : 트랜젝션을 분석하여 적절하게 1:1 관계로 분리함으로써 성능향상 가능

3. 대량 데이터 저장 및 처리로 인한 성능

           . RANGE PARITION 적용

           : 대상 테이블이 날짜 또는 숫자값으로 분리가 가능하고 각 영역별로 트랜잭션이 분리된다면 RANGE PARTITION 적용

           . LIST, PARTITION 적용

           : 지점, 사업소 사업장, 핵심적인 코드 값 등으로 PK가 구성되어 있고 대량의 데이터가 있는 테이블이라면 값 각각에 의해 파티셔닝 되는 LIST PARTITION 적용

           . HASH PARTITION 적용

           : 지정된 HASH 조건에 따라 해쉬 알고리즘이 적용되어 테이블이 분리되며 설계자는 테이블에 데이터가 정확하게 어디 들어갔는지 알 수 없다.

4. 테이블에 대한 수평분할/수직분할의 절차

           1) 데이터 모델링을 완성

           2) 데이터베이스 용량산정

           3) 대량의 데이터가 처리되는 테이블에 대해서 트랜잭션 처리 패턴을 분석

           4) 칼럼단위로 집중화 된 처리가 발생하는지, 로우 단위로 집중화 된 처리가 발생되는지 분석하여 집중화된 단위로 테이블을 분리하는 것을 검토

           - 칼럼이 많은 경우 1:1 형태로 분리 할 수 있는지 검증

           - 데이터 용량이 많은 경우 파티셔닝 전략 고려

 

반응형

댓글