[개발] 프로그램 지식

[SQLP] Single Block I/O란?

  • -
반응형

🔍 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 수행 과정

  1. 🔍 **사용자가 특정 행을 조회하는 SQL 실행** (예: `SELECT * FROM employees WHERE emp_id = 101`)
  2. 📚 **데이터베이스 엔진이 인덱스(또는 테이블)를 검색하여 해당 블록의 위치를 확인**
  3. 💾 **디스크에서 해당 블록을 메모리(Buffer Cache)로 로드**
  4. 📤 **결과 데이터를 반환**

 

 

 

 

 

 

📌 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, 인덱스 최적화를 통해 성능 개선 가능**

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.