Skip to the content.

Block

설명

데이터를 처리하는 최소 작업 단위


상세

오라클의 데이터 구조는 아래와 같음

그러므로 입출력을 최적화 하기 위해선 OS 블록 사이즈의 배수가 되어야함
일반적으로 OLTP에선 블록 사이즈가 작고 OLAP에선 블록 사이즈가 큼


Row Chaining, Migration



테이블 블록 할당 계산

--1. 통계정보 갱신
EXEC DBMS_STATS.gather_table_stats('owner_name', 'table_name');

--2. 해당 테이블 오브젝트들의 세그먼트 확인
SELECT SEGMENT_NAME, BLOCKS, BYTES / 1024 / 1024 AS "MB" 
FROM DBA_SEGMENTS 
WHERE SEGMENT_NAME IN ('object_name1','object_name2', ...);
/*
SEGMENT_NAME	BLOCKS	MB
table_name	942168	7360.6875
index_name	149616	1168.875
*/

--3. 블록 확인
SELECT TABLE_NAME, NUM_ROWS, BLOCKS
FROM DBA_TABLES 
WHERE TABLE_NAME = 'table_name';
/*
TABLE_NAME	NUM_ROWS	BLOCKS
table_name	47344213	940759
*/

--4. 실제 사용하고 있는 블록 확인
SELECT COUNT(DISTINCT DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) || DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID)) "USED" FROM owner_name.table_name;
/*
USED
934768
*/


관련 파라미터