SQLP질문

p.385 실습시 physical reads가 계속 유지됨

데브원진 2022. 7. 11. 20:41

 

select * 
from (
    select /*+  */ rownum no, a.*
    from
    (
        -- SQL Body 시작
        select owner, object_name 
        from big_table
        where owner = 'SYS'
        and created > TO_DATE('20170126135300','YYYYMMDDHH24MISS')
        order by created
        -- SQL Body 끝
    ) a
    where rownum <= (:page * 10)
)
where no >= (:page - 1) * 10 + 1;
 
 

위 SQL로 p.384하단의 실행계획과 동일한 결과를 볼 수 있었습니다.

하지만, trace를 살펴보면 아래와 같습니다.

-------------------------------------------------------------

recursive calls 0

db block gets 0

consistent gets 251229

physical reads 251221

redo size 0

bytes sent via SQL*Net to client 967

bytes received via SQL*Net from client 1307

SQL*Net roundtrips to/from client 3

sorts (memory) 1

sorts (disk) 0

rows processed 0

-------------------------------------------------------------

 

p.385하단의 실습결과와 달리 physical reads 251221 블록을 읽었고

여러번 쿼리를 실행해도 버퍼캐시에 의해 감소하지 않습니다.

이런한 현상이 일어나는 이유가 궁금합니다.