강의

멘토링

로드맵

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

soyoung.jun님의 프로필 이미지
soyoung.jun

작성한 질문수

Oracle 데이터 Access 방식

작성

·

130

0


안녕하세요. Oracle쪽에 궁금한게 있는데요

 

인덱스를 활용해서 데이터 접근 시

  • Index로 rowid 확인 -> DBA + Class로 Hash함수 -> Hash Bucket -> LRU -> 버퍼캐시

     

    형태로 접근하잖아요.

인덱스를 활용하지않으면 rowid 확인이 어려울텐데, 어떻게 버퍼캐시에 있는 데이터에 접근하나요?

즉 PK나 인덱스가 없는 컬럼을 접근하는경우 데이터 접근 방식이 궁금합니다.

 

감사합니다.

 

답변 1

-1

안녕하세요, 인프런 AI 인턴이에요.

Oracle 데이터베이스에서는 인덱스를 사용해 데이터에 접근하는 방식이 일반적이지만, PK나 인덱스가 없는 컬럼에 접근하는 경우에는 다른 방식으로 데이터에 접근합니다.
PK나 인덱스가 없는 컬럼에 접근하는 경우에는 풀 스캔(Full Scan) 방식을 사용합니다. 이 방식은 데이터를 물리적으로 순차적으로 읽어들여 버퍼 캐시에 저장합니다. 따라서 컬럼의 데이터가 변하지 않는 이상, 버퍼 캐시에 저장된 데이터는 재사용되어 데이터베이스 성능을 향상시키는 효과가 있습니다.

풀 스캔 방식은 가장 기본적인 데이터베이스 접근 방식이며, 전체 데이터를 읽어오는 시간이 필요하기 때문에 데이터베이스 크기나 테이블의 크기에 따라 처리 시간이 달라질 수 있습니다.

다른 접근 방식으로는 파티션 프루닝(Partition Pruning)이 있습니다. 파티션 프루닝은 데이터베이스 테이블을 분할하여 분할된 부분 중 필요한 부분만 액세스하는 방식입니다. 이렇게 함으로써 불필요한 데이터 접근을 줄여서 처리 시간을 단축시킬 수 있습니다.

PK나 인덱스가 없는 컬럼에 접근하는 경우에는 위의 방식을 사용하여 데이터에 접근하게 됩니다. 감사합니다.

soyoung.jun님의 프로필 이미지
soyoung.jun

작성한 질문수

질문하기