full scan 시 OS I/O 질문있습니다.
241
8 asked
안녕하십니까. 강의 너무 잘 듣고 있습니다.
질문이 생겨서 글을 남겨 봅니다.
질문 1.
index scan 시 buffer cache에 해당 블록이 없으면 디스크에 접근해야하는 random i/o가 발생하니까 sar 명령어로 보면 i/o wait 값이 20% 이상 올라가는건 이해가 됩니다.
궁금점은 용량이 큰 테이블을 full scan 시, direct path read가 발생할 것이고, 이는 디스크에서 바로 서버프로세스로 블록을 로드 하잖습니까. 근데 이떄도 분명히 i/o가 발생할텐데 왜 sar 명령어에서 i/o wait 값이 많이 올라가지 않을까요?? full scan은 multi block 으로 i/o를 읽기 때문에 그런건가요??
질문 2.
그리고 강의에서 말씀해주셨던 것 처럼 full scan시 테이블 용량이 1M(default)가 넘으면 direct path read가 발생한다고 하셨는데, 사실 요즘 시스템의 테이블은 거의다 1M이 넘을 것 같습니다. 그런데도 db file scattered 이벤트는 잘뜨던데 왜 그런걸까요?
감사합니다
Answer 1
0
안녕하십니까,
IO Wait는 CPU가 Storage등에 I/O Request 를 요청하고, 처리가 완료되었다는 Response를 받기까지 대기하는 시간입니다. 그런데 Storage가 Random I/O의 처리 용량이 생각보다 낮습니다. 그리고 Sequential I/O(Full scan)의 용량이 생각보다 큽니다. 때문에 Random I/O 시 I/O Wait 가 훨씬 더 많이 발생합니다. 그리고 Sequential I/O 시에도 Storage의 Throughput을 초과하는 대용량의 Full Scan 시에는 I/O Wait가 크게 발생합니다.
11g 부터는 full scan 시 direct path read 를 수행할 수 있도록 개선이 되었으며, 강의에서 말씀드린대로 작은 테이블의 full scan 일 경우는 buffer cache에도 올라 갈 수 있지만(db file scattered read 이벤트) 일정 용량이 넘는 테이블은 direct path read로 처리하여 buffer cache에 못 올라가도록 되어 있습니다.
그리고 Wait Event 강의에서 말씀드린 대로 이런 방식으로 동작하려면 "_serial_direct_read" 가 True로 설정되어야 하고(Default로 True임), "_small_table_threshold" 값에 따라 small 테이블 크기가 설정되는데, 보통은 buffer cache의 2% 정도입니다. "_small_table_threshold" 값이 크면 해당 사이즈 이하의 테이블들은 db file scattered read 이벤트가 발생합니다.
감사합니다.
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
random i/o와 full scan 문제 질문
0
166
3
hugepage_settings.sh 파일 실행시 커널 버전
0
210
2
강의중 윈도우 경고음?이 너무 크게 들릴때가 있습니다.
0
149
3
19ee 설치 관련
0
166
2
클라우드 굳이 안해도 되나요??
0
253
2
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

