강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

sk님의 프로필 이미지
sk

작성한 질문수

오라클 성능 분석과 인스턴스 튜닝 핵심 가이드

Library Cache 상세 구조

table full scan과 index_ffs 성능비교

작성

·

6

0

안녕하세요 강사님

덕분에 강의 잘 듣고 있습니다

table full scan과 index_ffs 성능 비교 시

index_ffs 가 크기가 작아서 무조건 더 빠를 것이라고 생각했는데요

table full scan 시 direct i/o가 발생하여

index_ffs 보다 더 빠른 경우도 생길 수 있는건가요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. sk님.

질문하신 내용에 대해 답변을 드리겠습니다. Table Full Scan과 Index Full Scan (index_ffs) 간의 성능 비교는 매우 상황에 따라 다를 수 있습니다. 일반적으로 생각하기에 index_ffs가 블록 사이즈가 작아 빠를 것 같지만, 다음과 같은 상황에서는 성능 차이가 다르게 나타날 수 있습니다.

  1. Direct I/O: Table Full Scan은 Direct Path Read를 사용할 수 있습니다. 이 방식은 대량의 블록 데이터를 한 번에 읽어 오기 때문에 속도에서 이점이 있을 수 있습니다. Direct Path Read는 데이터가 버퍼 캐시를 우회하여 직접 데이터 파일에서 읽어들일 수 있도록 하여 I/O 효율성을 높일 수 있습니다.

  2. Multi-block Read Count: Table Full Scan의 경우 다중 블록을 한 번에 읽는 방식으로 진행되기 때문에 I/O 성능을 극대화할 수 있습니다. 반대로, 인덱스를 사용하면 랜덤 I/O가 발생할 수 있으므로 성능이 저하될 수 있습니다.

  3. 테이블과 인덱스의 크기 및 사용 빈도: 작은 크기의 테이블이나 자주 접근되는 것은 캐시 효율성이 증가할 수 있으므로 인덱스의 성능 차이가 크게 나타날 수 있습니다.

이 주제를 더 깊이 이해하시려면 아래 링크를 참조하시면 좋겠습니다:
- full scan 시 OS I/O 질문있습니다.
- Sequential Acess는 HDD상에서도 Block을 Sequential하게 읽나요?

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

sk님의 프로필 이미지
sk

작성한 질문수

질문하기