【DB笔试面试678】在Oracle中,什么是热块?
♣
题目 部分
在Oracle中,什么是热块?
♣
答案部分
当一个会话需要访问一个数据块,而这个数据块正在被另一个用户从磁盘读取到内存中或者这个数据块正在被另一个会话修改时,当前的会话就需要等待,就会产生一个buffer busy waits等待,也伴随着Latch争用。如果太多的会话去访问相同的数据块,那么会导致长时间的buffer busy waits等待,通常表现形式为CPU使用率很高,但吞吐量很低。造成热块的原因可能是数据库设置或者重复执行的SQL语句频繁访问一些相同的数据块。热块产生的原因不尽相同,按照数据块的类型,可以分成表数据块、索引数据块、索引根数据块、文件头数据块和数据块自身的争用,不同热块类型处理的方式是不同的。下面给出找到热块的SQL语句:
1SELECT OBJECT_NAME, 2 SUBOBJECT_NAME 3FROM DBA_OBJECTS 4WHERE DATA_OBJECT_ID IN 5 (SELECT DATA_OBJECT_ID 6 FROM (SELECT OBJ DATA_OBJECT_ID, 7 FILE#, 8 DBABLK, 9 CLASS,10 STATE,11 TCH12 FROM x$bh13 WHERE HLADDR IN (SELECT ADDR14 FROM (SELECT ADDR15 FROM V$LATCH_CHILDREN16 ORDER BY (GETS + MISSES + SLEEPS) DESC)17 WHERE ROWNUM < 10)18 ORDER BY TCH DESC)19 WHERE ROWNUM < 10);
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
---------------优质麦课------------
详细内容可以添加麦老师微信或QQ私聊。
About Me:小麦苗
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
DBA宝典
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。
更多相关文章
- 【DB笔试面试702】在Oracle中,如何定时清理INACTIVE状态的会话?
- 【DB笔试面试696】在Oracle中,什么OSWatcher工具?
- 【DB笔试面试716】在Oracle中,集群有哪几种心跳机制?
- 【DB笔试面试697】在Oracle中,V$SESSION视图中有哪些比较实用的列
- 【DB笔试面试689】在Oracle中,如何收集systemdump?如何收集hangana
- 【DB笔试面试703】在Oracle中,怎么杀掉特定的数据库会话?
- 转行指南→数据分析师之我可以转吗?
- 【DB笔试面试695】在Oracle中,什么是Oracle RDA(Remote Diagnostic
- 【DB笔试面试684】在Oracle中,什么是DUAL表?