inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Oracle hiệu suất phân tích và điều chỉnh phiên bản chính yếu hướng dẫn

So sánh Full Scan và Random IO

random i/o와 full scan 문제 질문

166

newbyd

4 câu hỏi đã được viết

0

위에 조건에서 random i/o와 full scan 모두 디스크 i/o 로 가정했다고 하면 적게 블록을 읽은 random i/o 가 더 빠른게 아닌가요?

해당 설명이 인덱스에서 백만건 레코드를 찾았을 경우를 뜻하는 건지 모르겠습니다

oracle dbms/rdbms

Câu trả lời 3

0

newbyd

안녕하세요. 답변 감사합니다. 말씀하신 기하급수적으로 늘어난다는 것이 하드디스크 상에서 데이터를 읽을 때 full scan 시 연속적인 block 을 읽기 때문에 block 이 띄어져 있는 random i/o 보다 빠르다는 말씀이신건가요?

0

dooleyz3525

네, 맞습니다, 그리고 강의에서 말씀드린 대로 HDD가 random I/O를 하려면 full scan 보다 움직이는 동작 소모가 많습니다. 그래서 시간이 오래 걸립니다.

0

dooleyz3525

안녕하십니까,

random I/O로 십만 블록을 Access하면 시간이 크게 소모 됩니다. Random I/O는 1 block시 읽어 오는데 시간이 많이 걸립니다. random I/O 1,000 Block, Full scan으로 십만 블록을 읽는 다면 random I/O가 더 빠를 수 있지만, random I/O 가 십만 블록으로 늘어나면 I/O 시간이 기하 급수적으로 늘어 납니다.

하지만 Full Scan은 십만 블록에서 천만 블록으로 늘어나도 random I/O의 시간만큼 기하급수적으로 늘어나지 않습니다. 그래서 random I/O 십만 블록을 읽는 것 보다 Full scan 천만 블럭을 읽는 것이 더 수행 시간이 빠릅니다.

감사합니다.

0

communityai8509

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

질문하신 내용에 대해 관련된 설명과 답변을 드리고자 합니다. Random I/O와 Full Scan은 두 가지 주요한 디스크 I/O 방식으로, 각기 다른 성능 특성을 가집니다.

먼저, Random I/O는 주로 인덱스를 통해 데이터를 찾는 방식으로, 필요한 데이터 블록을 불규칙하게 접근합니다. 이는 디스크의 물리적 위치에 따라 I/O 시간이 달라지며, 수많은 작은 범위의 데이터 접근 시 성능이 저하될 수 있습니다.

반면, Full Scan은 대량의 데이터를 한 번에 읽어 들이는 방식으로, 주로 테이블 전체를 스캔합니다. 이는 대량의 연속된 데이터를 빠르게 읽어 들이기 때문에, 특정 상황에서 Random I/O보다 효율적일 수 있습니다. 특히, 대용량 데이터 처리는 Sequential I/O(Full Scan) 방식을 통해 이루어지면 디스크 헤드 이동이 최소화되며, 이로 인해 더 효율적일 수 있습니다.

질문에 언급하신 “백만 건 레코드” 문제에서는, Full Scan이 한 번에 대량의 데이터를 읽어 들이는 읽기 속도가 Random I/O에 비해 유리할 수 있습니다. 이는 대량의 데이터 처리가 필요한 상황에서 Full Scan이 적합한 이유 중 하나입니다.

관련된 추가 설명을 위해 두 유사한 게시물 링크를 추천해드립니다:

  1. Sequential Acess는 HDD상에서도 Block을 Sequential하게 읽나요?
  2. 서버 프로세스의 i/o 접근 방법?

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

Toad for Oracle Trial 버전을 지원하지 않는것으로 보입니다.

0

63

1

table full scan과 index_ffs 성능비교

0

126

2

HDD가 아닌 SSD인 경우는 dBMS I/O가 어떻게 동작하나요?

0

125

2

HOST CPU 자료를 받으려면?

0

142

3

Buffer Cache를 통한 데이터 Access 에서 DBA 정보를 어떻게 알아내는지 궁금합니다.

0

155

2

hugepage_settings.sh 파일 실행시 커널 버전

0

210

2

강의중 윈도우 경고음?이 너무 크게 들릴때가 있습니다.

0

149

3

19ee 설치 관련

0

166

2

클라우드 굳이 안해도 되나요??

0

253

2

full scan 시 OS I/O 질문있습니다.

0

241

1

19c ee rpm 파일 설치 문의

0

228

1

direct path read/write temp 관련 질문

0

245

1

swingbench 에러좀 확인부탁드려요

0

339

2

회원가입 시 Customer type 구분

0

242

2

수료증 발급문의

0

232

1

swingbench 2.6 다운이 안받아져요

0

275

1

오라클 long data type 지원

0

438

1

sqldeveloper를 앞에서 썼다고 하셧는데...

0

216

1

soe_10g_01.dbf생성중 오류

0

222

1

TOAD 연결 질문드립니다.

0

345

1

oracl21c로 설치해도 되나요?

0

275

1

Hard Parsing의 자원 사용

1

513

2

Sequential Acess는 HDD상에서도 Block을 Sequential하게 읽나요?

1

365

2

인덱스 등 선행 지식 문의

0

216

1