작성
·
282
0
Buffer Cache storage I/O Access 관련 질의있습니다.(강의자료 74p)
맨 처음으로 원하는 데이터가 있는 블록의 DBA정보를 알아내야 하는데, 이 때 storage I/O가 필요할 것으로 생각됩니다.(DBA 정보를 얻기 위해)
제가 생각한게 맞을까요??
그리고, storage I/O가 발생하는것이 맞다면, 버퍼 캐시를 사용하여도 무조건 1번의 storage I/O가 발생하는데,
그렇게 되면 버퍼 캐시를 사용하는 장점이 없어지는 것 같습니다.
버퍼 캐시에 원하는 데이터의 블록 존재여부와 관계없이 두 케이스 모두 storage I/O를 한번씩 하지않나요?
답변 1
1
안녕하십니까,
DBA 정보는 오라클의 내부 메커니즘으로 계산됩니다. 어떤 테이블의 어떤 레코드를 액세스 해야 할지 판단되면 오라클은 내부 메커니즘으로 이 DBA정보를 매핑 시킵니다.
그리고 이렇게 DBA정보나 Buffer cache내의 Hash bucket 등의 정보는 내부적인 Data dictionary에 기반하고 있는데, 이 내부 Data Dictionary는 대부분 초기에 oracle이 기동 될 때 정보들을 전용 메모리에 로딩하거나 너무 큰 경우에는 전체가 로딩되지 않더라도 Buffer cache 메커니즘과 유사하게 자주 사용되는 부분 먼저 메모리에 올리게 됩니다.
때문에 DBA 정보를 계산하기 위해 storage를 access할 필요는 없습니다.
감사합니다.
이해했습니다. 자세한 설명 감사합니다!!