Oracle 데이터베이스에서 테이블이나 인덱스에 데이터를 저장할 때, 공간 관리와 성능 최적화를 위해 FreeList와 HWM(High Water Mark)가 중요한 역할을 합니다.
| 개념 | 설명 |
|---|---|
| FreeList | 테이블이나 인덱스에서 새로운 데이터가 삽입될 수 있는 여유 공간(블록) 목록 |
| HWM (High Water Mark) | 테이블에서 한 번이라도 데이터가 기록된 가장 마지막 블록의 위치 |
FreeList란?
FreeList 관리 방식
📌 FreeList 개수 조정 예제
ALTER TABLE employees STORAGE (FREELISTS 5); ✔ FreeList가 중요한 이유
HWM이란?
✔ HWM의 특징
| 단계 | 설명 |
|---|---|
| 1. 새로운 INSERT 발생 | FreeList에서 사용 가능한 블록을 찾음 |
| 2. 빈 블록이 FreeList에 존재하면 | FreeList에서 가져와 데이터를 저장 |
| 3. FreeList에 빈 블록이 없으면 | HWM을 증가시켜 새로운 블록 할당 |
📌 FreeList 사용 예제
INSERT INTO employees VALUES (1001, 'John Doe', 'IT'); ✔ 동작 방식:
데이터를 삭제해도 HWM이 줄어들지 않음.
즉, FULL TABLE SCAN 시 여전히 삭제된 블록을 스캔해야 하므로 성능 저하 가능.
📌 예제: DELETE 수행 후 HWM 유지됨
DELETE FROM employees WHERE department = 'IT'; ✔ 문제점:
TRUNCATE 명령어를 사용하면 HWM이 리셋되므로, FULL TABLE SCAN 시 불필요한 블록을 스캔하지 않음.
TRUNCATE TABLE employees; ✔ 결과:
SHRINK SPACE 명령을 사용하면 HWM을 낮추면서 데이터를 유지할 수 있음.
ALTER TABLE employees ENABLE ROW MOVEMENT;
ALTER TABLE employees SHRINK SPACE; ✔ 결과:
ALTER TABLE sales STORAGE (FREELISTS 10); ✔ 결과:
TRUNCATE TABLE orders; ✔ HWM 초기화 + FreeList 재설정ALTER TABLE orders ENABLE ROW MOVEMENT; ALTER TABLE orders SHRINK SPACE; ✔ HWM을 낮추면서 데이터 유지 가능CREATE TABLE orders (
order_id NUMBER,
order_date DATE
)
PARTITION BY RANGE (order_date) (
PARTITION p_2023 VALUES LESS THAN (TO_DATE('2024-01-01', 'YYYY-MM-DD')),
PARTITION p_2024 VALUES LESS THAN (TO_DATE('2025-01-01', 'YYYY-MM-DD'))
); ✔ 결과:
| 항목 | FreeList | HWM (High Water Mark) |
|---|---|---|
| 개념 | 사용 가능한 빈 블록 목록 | 한 번이라도 데이터가 저장된 마지막 블록 위치 |
| 역할 | 새로운 데이터 삽입 시 사용 가능한 공간 제공 | FULL TABLE SCAN 범위를 결정 |
| INSERT 시 영향 | 빈 블록이 있으면 재사용, 없으면 HWM 증가 | FreeList에 공간이 없으면 HWM 증가 |
| DELETE 후 영향 | FreeList에 공간 추가 가능 | 삭제 후에도 HWM이 줄어들지 않음 |
| 최적화 방법 | FreeList 개수 증가 | TRUNCATE, SHRINK SPACE 사용 |
| FULL TABLE SCAN 시 영향 | 영향 없음 | HWM까지 모든 블록을 읽어야 하므로 성능에 영향 |
✅ FreeList는 INSERT 성능을 향상시키는 핵심 요소이며, HWM은 FULL SCAN 성능에 영향을 미치는 중요한 지표
✅ DELETE를 수행해도 HWM은 줄어들지 않으므로 TRUNCATE 또는 SHRINK를 활용하여 최적화 가능
✅ 대량의 데이터를 다루는 경우 FreeList와 HWM을 적절히 관리하면 성능을 크게 개선할 수 있음! 🚀
요양원 선택 전 반드시 확인해야 할 체크리스트를 공개합니다. 공식 평가 자료 조회법, 방문 시 확인…
공공기관 채용 비리의 실태와 피해 지원자의 대응법을 정리했습니다. 채용 비리 신고 방법, 공익신고자 보호제도, 취준생…
주식 손실을 세금 절약에 활용하는 합법적 방법을 공개합니다. 해외주식 손익통산, ISA 계좌 활용, 연금계좌 절세까지…
배달이 예상 시간보다 크게 늦으면 취소·환불을 요청할 수 있습니다. 배달앱별 지연 취소 방법과 잘못 배달됐을…
통신비 절약의 핵심은 요금제 최적화입니다. 내 데이터 사용량 확인법, 알뜰폰 전환 비교, 위약금 없이 요금제…