• nologging : 대량의 데이터를 추출하여 옮기는 경우 redo를 최소화
  • Clustering Factor : index column의 순서대로 테이블 데이타가 모여있는 정도
  • Table을 저장하는 방식
  1. Heap Table : 데이터를 계속 적재하며 저장하는 방식
  2. Clustered Table : Cluster key를 기준으로 동일한 저장소에 저장
  3. Index Organized Table : primary key 컬럼을 기준으로 index segment에 저장
  4. Partitioned Table : 하나의 테이블을 둘 이상의 세그먼트로 서로 다른 테이블 스페이스에 저장
  5. Temporary Table
  • 클러스터
  • 테이블 데이터를 저장하기 위한 선택적 방식
  • 인덱스 클러스터
  • 해시 클러스터
  • Partitioned table
  • 관리상 장점 : 백업, 복구, 추가, 삭제
  1. 백업 : 테이블 전체를 백업하는 것이 아니라 세그먼트별로 백업 가능
  2. 복구 : 복구 또한 세그먼트 단위로 가능
  3. 추가, 삭제 -> 병렬 : 한 곳에만 데이터가 몰려있는 경우 성능이 좋지 않으므로 몰린 데이터를 나누는 것도 가능
  • 성능상 장점 : 파티션 단위로 조회, 병렬
  1. 불필요한 파티션에 접근하지 않고 필요한 파티션만 조회
  2. 조인을 처리하는 경우 파티션 단위로 조인할 수 있어 성능이 좋아짐
  3. 병렬 처리 : 모든 데이터가 균등해야 좋음, 여러 디스크에 병렬 저장
  • Range Partition
  1. 파티션을 나누고 각각에 들어갈 데이터의 기준을 정함(날짜 등)
  2. 마지막 기준은 maxvalue라고 지정함으로써 혹시라도 데이터가 들어가지 않는 경우를 예방
  3. select 하는 경우 파티션의 기준을 where절에서 사용하면 파티션 제거 효과를 볼 수 있음
  4. 값이 골고루 저장 될 수 없음 -> 나중에 spread 시켜줄 수 있음
  • List Partition
  1. 리스트 별로 파티션을 나눔 - ex) 지역별 - '서울, 경기' , '전북, 전남, 강원' ... 등
  2. 값이 골고루 저장 될 수 없음
  • Hash Partition
  1. hash 함수에 값을 넣고 리턴되는 값(위치) - ex) hash(100) -> 1, hash(200) -> 4 ...
  2. 파티션 갯수만 정해주면 오라클 서버가 알아서 데이터를 분배
  3. 파티션 키와 갯수만 정해짐
  • interval-partition
  1. 일정한 기준값 마다 자동으로 파티션이 만들어짐
  2. ex) 1개월 마다 날짜에 따른 파티션이 생성
  • range + hash : 값을 골고루 저장할 수 있음(range 안에 hash)
  • local : 테이블 파티션 키와 인덱스 파티션 키가 같음
  1. 관리상에 장점
  • prefixed : 인덱스 첫 번째 컬럼이 인덱스 파티션 키와 같음
  1. 성능상에 장점 : 파티션 제거 가능
  2. local prefixed : 성능이 가장 좋음
  • non-prefixed
  1. local nonprefixed
  • Global
  1. 베이스 테이블의 파티션 키와 다른 파티션 키를 가짐
  2. 관리상의 장점이 없음 -> 베이스가 깨지면 전체를 다시 만들어야 함
  3. 파티션 제거효과는 있음 -> 베이스 테이블과는 다른 조건을 비교할 경우 사용
  4. global nonprefixed는 아무런 장점이 없음
  • OLTP : 트랜잭션이 만들어지는 업무
  1. 트랜잭션 : 한 단위로 처리 되어야할 작업의 단위(insert, update, delete 등)
  2. Tx -> 데이터가 쌓임
  3. 쌓인 데이터를 분석하기 위해 OLAP로
  4. 데이터의 범위가 좁음
  • OLAP : 트랜잭션 없이 분석하기 위한 업무
  1. staging DB 과정을 통해 OLTP를 OLAP로 옮길 수 있음(CTAS, Insert Select 등)
  2. Data Warehousing
  3. DSS : 의사결정 지원 시스템
  4. BI : 비즈니스 인텔리젼스
  5. Data Mart
  6. Data Mining
  7. 의사결정을 하기 위함
  8. 데이터의 범위가 넓음
  • composite 파티셔닝
  1. range-hash -> range내부에서 hash로 병렬처리 효과를 봄
  2. range-list
  3. range-range -> range내부에서 또다른 range로 나눔
  4. list-hash
  5. list-list
  6. list-range
  7. hash가 먼저 나오는 경우는 없음
  • 11g partition
  1. Reference 파티션
  2. interval 파티션
  • 해당 파티션만 읽을 수 있음
  1. select * from range_sales partition(sales_q4_1999);

 

'Oracle > SQL Tuning' 카테고리의 다른 글

옵티마이저 통계관리  (0) 2020.02.06
클러스터 + 연산자  (0) 2020.02.05
subquery  (0) 2020.01.31
조인 연산자  (0) 2020.01.30
Optimizer - 2 + 실행 계획 2  (0) 2020.01.21

+ Recent posts