db file scattered Read
Event 정의

  1. I/O System 에 Multi Block I/O 를 요청하고 응답이 오기를 기다리는 Event
  2. P1 = file#
  3. P2 = block#
  4. P3 = blocks(실제로 읽은 블록 수)
  5. FTS, IFFS(Index Fast Full SCAN) 등에서 발생
    SQL> SELECT * FROM v$bh where file#=<p1> AND block#=<p2>
    Or
    SQL> ALTER SYSTEM DUMP DATA FILE <P1> BLOCK MIN <P2> BLOCK MAX < P2+P3-1>

db file scattered read 대기 과다 원인

  1. 불필요한 Full Scan
  2. SQl Tuning, Index Tuning
  3. 인덱스 변경/ 삭제에 의한 기존 인덱스 사용 불가한 경우
  4. 인덱스 Invaild 에 의한 인ㄷ게스 사용불가 ( Alter table .. Move 시 )
  5. 잘못된 통계정보에 의한 Full Table Scan
  6. 비효율적인 SQL 작성에 의한 Full Table Scan
  7. 비효율적인 Segment 공간
  8. 100만건 Insert 후 100만건 Delete ==> FTS 시간은 100만건과 동일 ( HWM )
  9. Table Reorg 필요 : Alter Table.. Move ...
  10. I/O System 성능 저하
  11. Disk I/O 성능 개선
  12. Hot Spot 해소 : Logical Volumne Level Striping, ASM 등
  13. Multi Block I/O 와 db file sequential read
  14. Multi Block I/O 중간에 Single Block I/O 가 발생하는 경우
  15. Extent 경계를 만난 경우
  • 적절한 Extent 크기 사용
  • Uniform Size 5M 를 기본값으로 사용할 것을 권고
  1. Chained Row 를 만난 경우'
  2. Index 를 생성하는 경우
  1. MBRC
  2. DB_FILE_MULTIBLOCK_READ_COUNT
  3. Multi Block I/O 수행 시 한꺼번에 요청하는 블록 수를 의미
  4. MBRC 의 값을 클수록 좋다 ?
  5. 일반적으로 Full Scan 시 큰 값을 추천
  6. Logical Volumn 사용시 Stripe 크기와 관계 있음
  7. Multi Block I/O 크기 = N* Stripbe Size
  8. Stripe 크기를 초과하는 MBRC 는 큰 성능 개션 효과 없을 수 있음
  9. Test 를 통한 검증 필요
  10. File System, Logical Volun Manager, Storage 속성에 따라
  1. MBRC 와 Stripe Size
  2. MBRC = 8 , Block Size = 8K
  3. Stripe Size = 8 * 8 = 64 K