DB&SQL

오라클 SQL튜닝 - 데이터베이스 블록

초롱불 2024. 5. 9. 12:25

데이터베이스 블록(Block)이란?

데이터베이스 블록은 오라클 데이터베이스에서 데이터를 저장하는 가장 작은 단위이다.  블록은 여러 운영체제블록으로 구성된 논리적 단위로 수백만 또는 수십억개가 될 수 있으며 실제 데이터를 저장한다. 하나의 블록에는 한 테이블 전체 또는 몇 개의 행만 포함될 수 있다. 때로는 여러 테이블이 클러스터링 될 때 다른 테이블의 행들이 하나의 블록에 포함될 수도 있다.

 

블록의 구조

블록은 2KB에서 32KB까지 다양한 크기를 가질 수 있지만 일반적으로 8KB로 설정된다. 이 크기는 데이터베이스 설치 시 DBA에 의해 지정할 수 있다. 블록은 블록 헤더와 행으로 구성된다. 블록 헤더에는 블록 유형 정보, 해당 블록에 포함된 테이블의 정보, 그리고 각 행의 주소가 포함된 행 디렉토리를 포함하고 있다. 각 행의 주소를 ROWID라고 한다.

 

공간 활용과 성능

블록에는 행에 여유 공간이 주어져 행의 크기가 증가해도 같은 위치에 데이터를 쓸 수 있도록 한다. 이는 성능 향상에 도움을 주지만 새로운 행 크기가 기존 행 크기와 남은 공간을 초과하는 경우 충분한 공간이 있는 다른 블록으로 데이터가 이동 됨.

 

블록과 SQL 튜닝

데이터베이스 블록의 이해는 SQL 튜닝에 매우 중요하다. 서버가 데이터를 어떻게 읽는지는 블록을 어떻게 읽는지에 달려 있으며, 쿼리에서 읽는 블록 수를 줄이면 성능이 크게 향상될 수 있다.

 

 

*Udemy SQL 튜닝 강의 내용을 정리한 글입니다.