트러블슈팅 오라클 퍼포먼스 2판 (2017년)
강한 선택도를 가진 SQL 구문 0 0 20,505

by 구루비스터디 엑세스 최적화 [2023.09.09]


강한 선택도를 가진 SQL 구문

ROWID 액세스

  • where 절에 직접 rowid를 지정하는 것이다.
  • 수작업 데이터 관리 애플리케이션에 사용되는데 한번은 현재 데이터를 보여주는 용도이고 두번째는 변경 내용을 저장하기 위한 용도이다.


인덱스 액세스

  • 강한 선택도를 가진 SQL문에 가장 많이 사용되는 액세스 패스이다.


클러스터 팩터
  • 얼마나 많은 인접한 인덱스 키가 테이블에서 동일한 데이터 블록을 참조하지 않는지를 나타낸다.


b-트리 인덱스 vs 비트맵 인덱스
  • b-트리 인덱스와 비트맵 인덱스에서만 지원하는 핵심 기능
기능b-트리비트맵
기본키와 유일키V
로우 레벨 ?킹V
여러 인덱스의 효율적인 조합V
파티션 테이블에서 글로벌 인덱스 및 non-partitioned 인덱스V


비트맵 인덱스 사용 못하는 2가지 경우
  • primary key 와 unique key는 b-트리 인덱스만 사용할 수 있다.
  • 로우 롹이 안된다. 인덱스 항목(index entry)에 동시에 변경이 불가능하여 확장성에 심각한 제한을 가진다.
  • 또 다른 문제점은 변경 시 b-트리보다 더 많은 리두로그를 생성한다.


비트맵 인덱스 사용해도 좋은 경우
  1. 변경이 자주 발생하지 않은 낮은 카디널리티 테이터에 적합하다.
  2. where절이 여러개의 조건을 포함하는 경우
  3. 낮은 커디널리티에 대한 AND / OR 조건
  4. COUNT함수
  5. 널 값을 조회하는 검색 조건


주요 핵심

b-트리든 비트맵이든 인덱스에서 rowid를 가져오는 논리적읽기가 테이블을 읽는데 필요한 논리적 읽기보다 훨씬 작다.


index unique scan 및 index range scan을 일으키는 조건
조건B-트리비트맵
동등조건v
is nullv
범위(between,<,>,)v
inv
likev
부정형 비교(!=,<>)와 is not nullv
"데이터베이스 스터디모임" 에서 2017년에 "전문가를 위한 트러블슈팅 오라클 퍼포먼스(Second Edition) " 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4401

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입