🔍 SQLP Single Block I/O란?
**Single Block I/O**는 데이터베이스에서 **단일 블록을 읽거나 쓰는 I/O 작업**을 의미합니다. 이는 **랜덤 액세스(Random Access)** 방식으로 수행되며, **데이터 조회, 인덱스 검색, 특정 행(Row) 읽기** 등에 사용됩니다.
데이터베이스 시스템에서는 **한 번의 디스크 I/O에서 하나의 블록(Block)만 읽거나 쓰는 방식**을 Single Block I/O라고 합니다. 이와 반대로, **한 번의 I/O에서 여러 블록을 처리하는 방식은 Multi Block I/O**라고 합니다.
📌 1. Single Block I/O의 특징
Single Block I/O는 데이터베이스의 기본적인 읽기/쓰기 단위이며, **랜덤 액세스(Random Access) 방식**을 활용합니다.
- 📌 **하나의 블록(8KB~64KB 크기)을 한 번에 읽거나 씀**
- 📌 **인덱스 검색 및 특정 행(Row) 조회에 주로 사용**
- 📌 **랜덤 액세스(Random Access) 기반으로 수행**
- 📌 **디스크 I/O 오버헤드가 상대적으로 높음**
- 📌 **OLTP(Online Transaction Processing) 시스템에서 빈번하게 발생**
🛠 2. Single Block I/O의 동작 방식
🔹 데이터 검색 시 Single Block I/O 수행 과정
- 🔍 **사용자가 특정 행을 조회하는 SQL 실행** (예: `SELECT * FROM employees WHERE emp_id = 101`)
- 📚 **데이터베이스 엔진이 인덱스(또는 테이블)를 검색하여 해당 블록의 위치를 확인**
- 💾 **디스크에서 해당 블록을 메모리(Buffer Cache)로 로드**
- 📤 **결과 데이터를 반환**
📌 Single Block I/O 예제 (오라클)
SELECT * FROM employees WHERE employee_id = 100;
위 쿼리를 실행하면, 오라클 데이터베이스는 **해당 행이 저장된 블록을 디스크에서 읽어와 메모리에 적재한 후 반환**합니다.
⚡ 3. Single Block I/O vs Multi Block I/O
구분 |
Single Block I/O |
Multi Block I/O |
🔹 처리 방식 |
한 번에 하나의 블록만 읽거나 씀 |
한 번의 I/O에서 여러 블록을 읽거나 씀 |
🔹 사용 사례 |
인덱스 검색, 랜덤 읽기, 특정 행 조회 |
Full Table Scan, 대량 데이터 검색 |
🔹 성능 |
랜덤 액세스로 인해 성능이 낮을 수 있음 |
순차 접근 방식으로 속도가 빠름 |
🔹 예제 |
`SELECT * FROM employees WHERE emp_id = 100` |
`SELECT * FROM employees` (전체 조회) |
📌 4. Single Block I/O 성능 최적화
Single Block I/O는 **디스크 I/O 부하를 줄이기 위해 성능 최적화가 필요**합니다.
✅ 성능 최적화 방법
- 🛠 **인덱스 최적화** – 검색을 빠르게 하기 위해 적절한 인덱스 생성
- 💾 **Buffer Cache 활용** – 자주 조회되는 데이터는 메모리에 캐싱
- 🚀 **I/O 성능 튜닝** – 디스크 IOPS(Input/Output Operations Per Second) 조정
- 📊 **Partitioning 적용** – 테이블을 파티셔닝하여 특정 데이터만 로드
📞 5. 추가 자료 및 학습 리소스
✔ **오라클 공식 문서:** Oracle 데이터 저장 구조
✔ **SQL Server I/O 구조:** SQL Server I/O 성능
✔ **PostgreSQL 스토리지 관리:** PostgreSQL Storage 구조
🎯 6. 결론
Single Block I/O는 **랜덤 액세스 기반으로 개별 블록을 읽거나 쓰는 방식**으로, 주로 **인덱스 검색, 특정 행(Row) 조회, OLTP 시스템**에서 사용됩니다.
📌 **핵심 정리:**
- 🔹 **한 번의 I/O에서 하나의 블록만 읽거나 씀**
- 🔹 **인덱스 검색, 랜덤 읽기, 특정 행 조회에 사용**
- 🔹 **Multi Block I/O보다 속도가 느릴 수 있음**
- 🔹 **Buffer Cache, 인덱스 최적화를 통해 성능 개선 가능**