행위

엑사데이타 EXADATA

DB CAFE

Dbcafe (토론 | 기여)님의 2024년 3월 20일 (수) 15:33 판 (스토리지 인덱스는 언제 생성되나>)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
thumb_up 추천메뉴 바로가기


1 엑사데이타 EXADATA[편집]

1.1 엑사데이타 특징[편집]

  1. Direct Path Read 방식으로 Full Table Scan 을 유도해서 스마트스캔,스토리지 인덱스 기능을 활용하여 성능향상

1.1.1 스마트스캔[편집]

  1. 셀서버(Cell Server)가 이해할수 있는 "iDB" 프로토콜을 사용하여 , 셀서버가 필요한 행을 선별하여 쿼리를 수행
  2. 스마트스캔의 가장 큰목적은 디비서버로 보내는 양을 최소화 시키는것 (오프로딩,스마트스캔 수행)
1.1.1.1 스마트스캔 동작 방식[편집]
  1. 질의실행
  2. 스마트스캔 활성화하여 셀로 보냄
  3. 스마트스캔이 1테라바이트의 테이블 에서 요구사항에 맞는 컬럼과 로우를 인식
  4. 디비서버로 선별된 로우 2메가 데이터가 전달됨
  5. 모든 셀로부터 전달되어진 결과집합을 하나로 통합
  6. 해당결과 전달
1.1.1.2 선별된 로우만 디비서버(PGA)로 전송 방식[편집]
  1. SELECT 절을 분석후 ==> 필요한 컬럼만
  2. WHERE 절을 분석후 ==> 필요한 로우만
  3. 스토리지 인덱스를 통한 ==> 불필요한 I/O 제거
  4. 조인작업시 불름필터를 통한 ==> 조인대상 범위를 줄여 최적화
  5. 파티션에 기반한 ==> 필요한 파티션만
1.1.1.3 스마트스캔은 언제 수행되나?[편집]
  1. 엑세데이터 스토리지(ASM기반)에서 Direct Path Read(SGA를 거치지 않고 PGA로 직접로드) 방식으로 Full Scan(또는 Index Fast Full Scan)이 수행 되어야 함
  2. 조회 테이블은 전체 컬럼이 아니며 WHERE 조건이 기술되어야 함
  3. Direct Path Read는 주로 병렬처리수행시 동작하므로 주로 힌트를 사용하여 병렬처리로 수행하여야 함
  4. 아래와 같은 필터링 및 최적화 기법으로 선별된 로우만 디비(PGA)로 전송
    1. Column Projection : Select절을 분석하여 필요한 컬럼만 반환(Select 컬럼 + Join 컬럼만 )
    2. Predicate Filtering : Where절을 분석하여 필요한 로우만 반환
    3. Join Filtering : 블름필터를 통하여 조인 대상 최적화
    4. 스토리지 인덱스를 통하여 불필요한 I/O 제거
    5. 파티션에 기반한 파티션 푸루닝(Partition Pruning)
    6. 함수 오프로딩 가능(V$SQLFN_METADATA 확인)

1.1.2 스토리지 인덱스[편집]

  1. 기존 인덱스는 읽을 필요가 있는 블록을 찾지만 , 스토리지 인덱스는 읽지 않아도 되는 블럭을 제거하는 목적으로 사용
  2. 이를 통해서 읽어야할 블럭의양을 제거하여 대용량 조회의 성능조회의 성능을 향상시킴
1.1.2.1 스토리지 인덱스란 ?[편집]
  1. 스토리지 서버 메모리에 테이블의 데이터에 대한 요약정보 인덱스(1M단위 Min/Max값)을 유지 하면서
  2. 데이터가 인덱스 범위에 속하지 않을 경우 해당블록의 스캔을 하지 않음으로써,불필요한 Disk I/O를 줄이기 위한 목적으로 설계된 스토리지 서버 기능
1.1.2.2 스토리지 인덱스 구조[편집]
  1. 테이블을 1메가 단위의 스토리지 리젼(Storage Region)으로 나누고 , 스토리지 리젼내 데이터들의 최대/최소값과 널(Null) 유무정보를 저장
  2. 테이블 하나에 최대 8개 (최신버전은 24)컬럼까지 생성 될수 있음.
1.1.2.3 스토리지 인덱스는 언제 생성되나 ?[편집]
  1. 해당컬럼을 포함한 스마트스캔 질의가 처음 실행될때 엑사데이터에 의해 자동으로 생성 됨
  2. 생성이후 데이터가 변경될때 자동으로 변경됨.
  3. 메모리에 저장되기때문에 셀서버(Cell Server)가 종료되면 자동으로 삭제 되고 다시 해당컬럼을 참조하는 스마트 스캔 질의가 처음으로 수행될때 자동으로 생성
1.1.2.4 스토리지 인덱스 사용조건[편집]
  1. 스마트스캔이 수행될 경우에만 사용됨, 최소 1개 이상의 Where절 조건이 명시되어야함
  2. 연산자(=,<,>,>=,<=,IN,Between ,Is null ,Is Not null)를 사용하여 조건을 비교하는경우
  3. 조인 수행전 스토리지 인덱스를 통한 필터링수행과 Where절의 바인드변수 또는 다중컬럼으로 조건이 있는 경우 사용됨.

1.1.3 엑사데이타 활용을 위한 조건[편집]

1.1.3.1 스마트스캔을 위한 조건[편집]
  1. 테이블 엑세스시 Full Table Scan을위한 FULL힌트 사용, 큰 테이블인 경우 PARALLEL 힌트를 같이 사용
    1. INDEX FAST FULL Scan 포함
  2. 필요한 컬럼만 기술
  3. 필요한 로우만 선택하기위해 WHERE 절에 조건 기술
1.1.3.2 스마트스캔이 되지 않는 경우[편집]
  1. Index Range Scan이 되는 경우
  2. 한번에 한행씩 처리토록 하는 절차형 쿼리
  3. ROWID 순서로 가져오는 스캔
  4. 255개 이상 컬럼 엑세스
  5. LOB,LONG 형 컬럼을 SELECT 하는 경우
  6. Serial DML인 경우
1.1.3.3 스토리지 인덱스를 위한 조건[편집]
  1. 스마트스캔을 하는 구문(FTS,Direct Path Read)
  2. WHERE 절 기술
  3. 연산자(=,<,>,>=,<=,IN,Between ,Is null ,Is Not null) 사용
1.1.3.4 스토리지 인덱스가 되지 않는 경우[편집]
  1. LOB,Long형 컬럼
  2.  != 부정형 비교 연산자
  3.  %와일드카드 사용조건
1.1.3.5 스마트 스캔 관련 힌트[편집]
  1. FULL
  2. APPEND
  3. PARALLEL
  4. CARDINALITY