수민

[호붕싸 모각코 12차]

뽑삥 2025. 5. 23. 22:03

- 오라클의 주요 파일 구조

 

1. 데이터 파일 (Data File)

  • 운영체제 상에서 물리적으로 존재
  • 사용자 데이터와 객체(테이블, 인덱스 등)를 저장
  • 테이블과 인덱스로 구성되어 있음

2. 온라인 리두 로그 (Online Redo Log)

  • 데이터 변경 사항을 모두 기록
  • 데이터베이스 장애 복구 시 사용됨
  • 최소 두 개의 리두 로그 파일이 필요 (순환 구조로 기록됨)

3. 컨트롤 파일 (Control File)

  • 오라클이 필요로 하는 다른 파일들의 위치 정보 저장
  • 데이터베이스 수준의 변경 사항 발생 시 자동 업데이트
  • DB 마운트 및 복구 시 필수로 필요한 파일

 

- 오라클 저장 영역 구조

>>> Tablespace → Segment → Extents → Block
 
  • Tablespace: 논리적인 저장 영역 (ex. USERS, SYSTEM 등)
  • Segment: 테이블이나 인덱스 등의 논리적 객체
  • Extents: 연속된 블록 묶음
  • Block: 실제 데이터가 저장되는 최소 단위

 

- 인덱스란 무엇인가?

: 인덱스는 도서관의 색인처럼 데이터를 쉽게 찾기 위해 사용하는 데이터 구조입니다.
특정 조건의 데이터를 빠르게 검색하거나 정렬할 때 매우 유용합니다.

  • WHERE 절의 조건이나 조인의 조건에 자주 사용되는 컬럼에 인덱스를 걸면 조회 속도가 향상됩니다.
  • 단, 수정/삭제/삽입이 자주 발생하는 테이블에 너무 많은 인덱스를 만들면 오히려 성능 저하의 원인이 됩니다.

 

- 오라클 인덱스의 구조

 

▶ B-Tree 인덱스

  • 가장 일반적으로 사용됨
  • 하나의 리프 노드는 하나의 데이터에 대응
  • 키 값에 따라 정렬되어 있으며, 빠른 탐색 가능

  IOT (Index Organized Table)

  • 인덱스가 실제 테이블 데이터를 포함하고 있음
  • B-Tree 구조로 구성되며, 인덱스 + 테이블 일체형

 Bit-map 인덱스

  • 비트를 사용해 하나의 인덱스가 여러 값을 가질 수 있음
  • 낮은 카디널리티(중복도가 높은 값, 예: 성별 등)에 유리

 Function-based Index

  • 특정 함수의 결과를 인덱스로 생성 가능
  • ex) CREATE INDEX idx1 ON emp(UPPER(ename));

 

 

- 인덱스 생성 고려사항

  1. WHERE 절에 자주 사용되는 컬럼
  2. 조인 조건에 자주 사용되는 컬럼
  3. 정렬을 자주 하는 컬럼
  4. 데이터가 자주 수정되지 않는 테이블
  5. 중복이 적고 고유한 값을 갖는 컬럼 (카디널리티 고려)

 

- 인덱스 관련 SQL 문법

  인덱스 생성

CREATE [REVERSE | UNIQUE] INDEX 인덱스이름 
ON 테이블이름 (컬럼 [ASC|DESC], ...);

 

예시:

CREATE INDEX ix_book ON Book(publisher, price);
 

 인덱스 확인

SHOW INDEX FROM 테이블이름;

 

인덱스 재구성 (Rebuild)

ALTER [REVERSE | UNIQUE] INDEX 인덱스이름 REBUILD;
 

 인덱스 삭제

DROP INDEX 인덱스이름;

 

 

- 성능 분석 예시

EXPLAIN PLAN FOR
SELECT * FROM EMP WHERE ENAME = 'SMITH';

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

→ 이 명령어들을 통해 특정 쿼리가 인덱스에 사용되었는지 확인할 수 있습니다. 

 

 

 

 

 

 

작성자 신수민
소 감 DB 관리 하면 가장 먼저 생각나는 SQL이 아니라 오라클이라는 언어에 대해 알게 되어서 좋았다. 오라클의 저장 구조와 인덱스를 공부하면서 DB 설계도 효율이 정말 중요하겠다라는 것을 다시금 깨닫았다. 일주일 뒤 시험 잘 보고 올 수 있을 것 같다는 생각이 들었다.
일 시 2025. 5. 23. (금) 18:00 ~ 21:00
장 소 미래관 429호 자율주행스튜디오
참가자 명단 신수민, 임혜진, 배세은, 김윤희 (총 4명)
사 진