티스토리 뷰

DB/SQL

SQL - 인덱스

xoo | 수진 2023. 8. 1. 21:23

인덱스

  • 데이터베이스 성능과 관련해서 매우 중요한 역할을 담당하는 오라클 객체
  • Database Buffer Cache : 물리적인 디스크 파일에 저장된 실 데이터를 임시적으로 메모리에 복사 저장
                                                     비어있는 상태로 시작됐다가 이후 사용자의 요청에 의해서 필요한 데이터를 물리적인 파일
                                                     에서 가져와 임시적으로 저장하게 된다.
  • 물리적인 파일을 접근한다는 것은 파일 입출력이 발생되는 것으로서 데이터베이스 수행속도에 큰 영향을 미치게 된다.
  • 많이 사용되는 데이터는 Database Buffer Cache에 저장해두고
  • 자주 사용되지 않은 데이터는 디스크 파일에 저장했다가 필요할 때 Database Buffer Cache에 복사해서 쓴다.
  • Database Buffer Cache에 필요한 데이터가 없어서 디스크 파일에서 찾을 때, 모든 블록(block)을 검색해야 하는데 이것을 Table Full Scan 이라고 하고, 매우 많은 시간이 걸리게 된다.

 

 

 

 

블록(block)

  • 각 블록에는 고유한 블록 아이디 (block id)와 고유한 행 번호(row id)가 부여된다.
  • 필요한 데이터를 빨리 찾는 방법은 그 데이터가 저장된 블록 아이디와 행 번호를 이용해서 직접 접근하는 방법 (index Scan) 이다.

 

 

 

 

 

ROWID

실 데이터가 저장된 주소 정보

  1. 파일 정보
  2. 테이블 정보
  3. 블록 정보
  4. 행 정보

 

 

 

 

인덱스

ROWID 값을 저장하고 있는 오라클 객체

인덱스 객체가 ROWID 값을 관리하여 데이터를 빠르게 검색한다.

 

 

 

 


Index Scan

ROWID 정보를 사용해서 필요한 데이터를 검색하는 방법

 

 

 


 

1. B 트리 인덱스

빈번하게 트랜잭션(Transaction)이 발생되는 OLTP(OnLine Transaction Processing)환경에 적합

 

 

 

 

2. 인덱스 생성

CREATE [UNIQUE] INDEX 인덱스명
ON 테이블( 컬럼[,컬럼] );

 

 

 

 

3. 인덱스 삭제

DROP INDEX 인덱스명;

 

 

'DB > SQL' 카테고리의 다른 글

SQL - 뷰, 시퀀스, 시노님  (0) 2023.08.01
SQL - 테이블 변경 / 데이터 사전  (0) 2023.08.01
SQL - DDL  (0) 2023.07.31
SQL - DML  (0) 2023.07.31
SQL - 다중 컬럼 서브쿼리 / 인라인 뷰  (0) 2023.07.30
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함