- 오라클의 주요 파일 구조
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));
- 인덱스 생성 고려사항
- WHERE 절에 자주 사용되는 컬럼
- 조인 조건에 자주 사용되는 컬럼
- 정렬을 자주 하는 컬럼
- 데이터가 자주 수정되지 않는 테이블
- 중복이 적고 고유한 값을 갖는 컬럼 (카디널리티 고려)
- 인덱스 관련 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명) |
사 진 |
'수민' 카테고리의 다른 글
[호붕싸 모각코 11차] 서브쿼리와 View (0) | 2025.05.16 |
---|---|
[호붕싸 모각코 10차] SQL 고급: 내장 함수 정리 (0) | 2025.05.09 |
[호붕싸 모각코 9차] (0) | 2025.05.02 |
[호붕싸 모각코 8차] (0) | 2025.04.11 |
[호붕싸 모각코 7차] (0) | 2025.04.04 |