利用V$bh和X$bh查看缓冲区中block的缓存情况:
V$bh:
select file#,block#,status from V$bh where bjd=(select data_object_id from
dba_objects where wner='SYS' and object_name='TEST') order by block#;
FILE# BLOCK# STATUS
--------- ---------- ----------
1 94376 xcur
1 94377 xcur
1 94378 xcur
1 94379 xcur
1 94380 xcur
1 94381 xcur
1 94382 xcur
1 94383 xcur
1 94384 xcur
1 94385 xcur
1 94386 xcur
FILE# BLOCK# STATUS
--------- ---------- ----------
1 94387 xcur
1 94388 xcur
1 94389 xcur
1 94390 xcur
1 94391 xcur
1 94392 xcur
1 94393 xcur
1 94394 xcur
1 94395 xcur
1 94396 xcur
1 94397 xcur
FILE# BLOCK# STATUS
--------- ---------- ----------
1 94398 xcur
1 94399 xcur
1 94400 xcur
1 94401 xcur
1 94402 xcur
1 94403 xcur
1 94404 xcur
1 94405 xcur
1 94406 xcur
1 94407 xcur
1 94408 xcur
FILE# BLOCK# STATUS
--------- ---------- ----------
1 94409 xcur
1 94410 xcur
1 94411 xcur
1 94412 xcur
1 94413 xcur
1 94414 xcur
1 94415 xcur
1 94416 xcur
1 94417 xcur
1 94418 xcur
1 94419 xcur
FILE# BLOCK# STATUS
--------- ---------- ----------
1 94420 xcur
1 94421 xcur
1 94422 xcur
1 94423 xcur
1 94424 xcur
1 94425 xcur
1 94426 xcur
1 94427 xcur
1 94428 xcur
1 94429 xcur
1 94430 xcur
FILE# BLOCK# STATUS
--------- ---------- ----------
1 94431 xcur
1 94432 xcur
1 94433 xcur
1 94434 xcur
1 94435 xcur
1 94436 xcur
1 94437 xcur
1 94438 xcur
1 94439 xcur
1 94440 xcur
1 94441 xcur
已选择66行。
从查询结果中我们可以根据status的值来判断块在buffer中状态:
xcur:表示排斥状态,被当前instance独占;
scur:表示被instance共享;
cr:表示一致性读
free:表示空闲状态
read:表示正在从磁盘读取
write:表示正在被写入
x$BH:
select file#,dbablk,tch from x$bh where bj=(select data_object_id from dba_objects where wner='SYS' and object_name='TEST') order by tch;
FILE# DBABLK TCH
--------- ---------- ----------
1 94394 1
1 94428 1
1 94407 1
1 94441 1
1 94386 1
1 94420 1
1 94399 1
1 94433 1
1 94378 1
1 94412 1
1 94391 1
FILE# DBABLK TCH
--------- ---------- ----------
1 94425 1
1 94404 1
1 94438 1
1 94383 1
1 94417 1
1 94396 1
1 94430 1
1 94409 1
1 94388 1
1 94422 1
1 94401 1
FILE# DBABLK TCH
--------- ---------- ----------
1 94435 1
1 94380 1
1 94414 1
1 94393 1
1 94427 1
1 94406 1
1 94440 1
1 94385 1
1 94419 1
1 94398 1
1 94432 1
FILE# DBABLK TCH
--------- ---------- ----------
1 94377 1
1 94411 1
1 94390 1
1 94424 1
1 94403 1
1 94437 1
1 94382 1
1 94416 1
1 94395 1
1 94429 1
1 94408 1
FILE# DBABLK TCH
--------- ---------- ----------
1 94387 1
1 94421 1
1 94400 1
1 94434 1
1 94379 1
1 94413 1
1 94392 1
1 94426 1
1 94405 1
1 94439 1
1 94384 1
FILE# DBABLK TCH
--------- ---------- ----------
1 94418 1
1 94397 1
1 94431 1
1 94410 1
1 94389 1
1 94423 1
1 94402 1
1 94436 1
1 94381 1
1 94415 1
1 94376 2
已选择66行。
结果中的TCH可以用来判断该块的热度;
当我们执行alter system flush buffer_cache后可以看到tch变为了0;而status变为了free。
FILE# DBABLK TCH
------- ---------- ----------
1 94384 3
1 94382 3
1 94385 3
1 94389 3
1 94380 3
1 94379 3
1 94388 3
1 94383 3
1 94386 3
1 94387 3
1 94381 4
FILE# BLOCK# STATUS
--------- ---------- ----------
1 94420 free
1 94386 free
1 94386 free
1 94441 free
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11782778/viewspace-630844/ ,如需转载,请注明出处,否则将追究法律责任。