X

데이터베이스 랜덤액세스 (Random Access)

I. DB성능 확보를 위한 랜덤액세스의 개념

데이터베이스 성능을
확보하기 위해
rowid 기반 인덱스
참조 후 한 번에
하나의 블록 액세스
하는 방식

II. 랜덤액세스의 유형

유형 항목 설명
확인
랜덤
액세스
개념 WHERE 조건의 컬럼이 인덱스에 존재하지 않아 테이블을 액세스하는 랜덤액세스
특징 – 랜덤액세스의 횟수보다 최종 결과가 동일하거나 적게 추출
고려
사항
– 인덱스 액세스 후 버려지는 데이터 발생
– 확인랜덤액세스 제거가 성능을 좌우
추출
랜덤
액세스
개념 – 인덱스 액세스 후 SELECT 절의 컬럼을 결과로 추출 위해 추가로 테이블에 액세스
특징 – 랜덤액세스 횟수와 추출 데이터양 동일
– SELECT 절에서 발생
고려
사항
– 자주 사용 SQL, 인라인 뷰를 통한 RowID 이용, 컬럼이 많은 결합 인덱스
정렬
랜덤
액세스
개념 ORDER BY, GROUP BY절 컬럼이 인덱스에 존재하지 않아 추기 테이블 액세스
특징 – 랜덤액세스와 추출 데이터 양 동일
– ORDER BY, GROUP BY절에서 발생
고려
사항
– ORDER/GROUP BY절 컬럼 인덱스 추가
– 불필요한 ORDER/GROUP BY절 제거
  • 랜덤액세스 중 추출되는 데이터를 감소시키는 확인랜덤액세스를 감소시키는 방안이 성능 측면에서 가장 중요

III. 랜덤액세스 최소화 사례

유형 사례 개선 사항
확인랜덤
액세스
SELECT 사번 FROM 사원
WHERE 부서=2 AND 나이=25;
– “나이” 컬럼 추가
→ 1회씩 액세스
추출랜덤
액세스
SELECT 이름 FROM 사원
WHERE 성별=”남”;
– “이름” 컬럼 추가
→ “이름” 자주 사용
정렬랜덤
액세스
SELECT 사번 FROM 사원
ORDER BY 나이 ASC;
– “나이” 컬럼 추가
→ 성능 개선
  • 랜덤액세스 최소화 위한 인덱스 추가는 상황에 맞게 고려하여 적용 필요
Categories: 데이터베이스
도리: