「SYS」ユーザーで「V$BH」ビューにアクセスして確認します。
$ sqlplus / as sysdba SQL> col OWNER for a8 col OBJECT_NAME for a16 select OWNER, OBJECT_NAME, count(*) "BUFFERS", count(*)*8/1024 "MB" from V$BH, DBA_OBJECTS where OBJD = DATA_OBJECT_ID and OWNER = 'TRY' and V$BH.STATUS != 'free' group by OWNER, rollup(OBJECT_NAME) order by 4 ; OWNER OBJECT_NAME BUFFERS MB -------- ---------------- ---------- ---------- TRY 897 7.0078125 TRY TAB39_SMALL 897 7.0078125
バッファキャッシュ上にキャッシュされているオブジェクトとサイズを確認するためには、V$BHビューへアクセスします。上記の回答例からも確認できるように、バッファキャッシュ上には約7MBの、表TAB39_SMALLのデータブロックがキャッシュされていますね。クエリを実行する前にバッファキャッシュを空にしているので、このブロックは演習3のクエリを実行することでキャッシュされたことに間違いはないでしょう。
ということで、ここまでを整理させていただくと、バッファキャッシュのサイズに比べて非常に小さな表TAB39_SMALLを、Table Full Scanした際に、ディスクからバッファキャッシュ上へマルチブロックで読み込んだことを示す待機イベントdb file scattered readが発生します。
Copyright © ITmedia, Inc. All Rights Reserved.