ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 利用X$bh和V$bh查看block在buffer中的缓存情况

利用X$bh和V$bh查看block在buffer中的缓存情况

原创 Linux操作系统 作者:laojiu9 时间:2010-03-30 22:30:23 0 删除 编辑

利用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/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: read by other session
请登录后发表评论 登录
全部评论

注册时间:2008-08-17

  • 博文量
    30
  • 访问量
    75579