* db_file_multiblock_read_count  파라미터는 한번의 I/O 작업으로 읽어들이는 최대 블럭 수를 가리키며 Multi Block I/O 에 관련된 파라미터이다.

디폴트 값은 O/S에 따라서 다른데 보통 db_block_buffers와 Processes에 의해서 결정되며 4~32 정도가 많이 사용된다.

이 값을 키우고 SORT/MERGE  를 이용하는 것이 Nested  Loop를 이용하는 경우 보다 퍼포먼스가 증가하는가 하는 문제는  Query의 종류와 읽어들이는 데이타의 양(전체에 대한 Percentage)에  따라서 달라지게 된다.

 

즉, 이 값이 크면 한번의 I/O로 여러개의 블럭을 읽  오므로 Full Table Scan시 에는 퍼포먼스가 증가한다. 하지만 특정 블럭만이 필요한 경우에 불필요한 블럭까지 함께 읽어들이므로 디스크를 읽는 시간이 증가할 뿐

아니라 크기가 한정된  Buffer Pool을 많이 차지해 버림으로써 자주 쓰이는 데이타를 밀어내어 오히려 Cache의 효율을 떨어뜨리는 결과를 가져올 수도 있으므로 작업특성에 따라서 적절한 값을 세팅하여야 한다.

 

오라클의 Optimizer는 이 값이 크면 작업의 효율성을 위해서 Full Table Scan 을 선택할  가능성이 커지게 된다.

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다