[SQLD] 파티셔닝

hwwwa·2022년 6월 1일
0

🍊 SQLD

목록 보기
6/16

대량 데이터에 따른 성능

Row Chaining

  • 하나의 Row를 하나의 블록에 저장할 수 없어 여러 블록에 걸쳐 저장
  • Initial Row Piece(행 조작)와 Row Pointer로 블록 내에 저장됨
  • Row 정보 검색을 위해 하나 이상의 데이터 블록을 Scan해야 하므로 성능 감소
  • 해결책: 블록의 크기를 크게 만든다

Row Migration

  • Update로 인해 늘어나는 공간을 저장할 공간이 없어서 다른 블록으로 Row를 옮기는 것
  • 기존 블록에는 Migration되는 데이터의 row header와 블록 주소값을 갖게 되고, 새로운 블록에는 Migration되는 데이터가 저장됨
  • Migration된 Row를 읽기 전에 기존 블록에서 헤더를 통해 Migration된 Row를 읽으므로 성능 감소
  • 해결책: PCTFREE를 크게 설정, 객체를 Export하고 삭제한 후 Import, 객체를 Migration하고 Truncate

해결방법

파티셔닝

  • 논리적으로는 하나의 테이블이지만 물리적으로는 여러개의 테이블로 분리하는 것
  • 데이터 엑세스 성능 향상, 데이터 관리 방법 개선
  • list partitioning
  • range partitioning: 관리 쉬움. 가장 많이 쓰임
  • hash partitioning: 관리 어려움

0개의 댓글