Oracle的逻辑结构(表空间、段、区间、块)——Oracle数据块(二)

简介:
以下脚本来自于互联网,具体出处已经找不到了,如有知道还请告知!

关于热点块的查询
 
==== 查询当前数据库 最繁忙的 Buffer , TCH(Touch) 表示访问次数越高,热点快竞争问题就存在 =====
SELECT *
 FROM (SELECT  addr, ts#, file#, dbarfil, dbablk, tch
           FROM x$bh
       ORDER BY tch DESC)
 WHERE ROWNUM < 11;
 
==== 查询当前数据库最繁忙的 Buffer ,结合 dba_extents 查询得到这些热点 Buffer 来自哪些对象 =====
SELECT e.owner, e.segment_name, e.segment_type
          FROM dba_extents e,
               (SELECT *
                  FROM (SELECT  addr, ts#, file#, dbarfil, dbablk, tch
                            FROM x$bh
                        ORDER BY tch DESC)
                 WHERE ROWNUM < 11) b
         WHERE e.relative_fno = b.dbarfil
           AND e.block_id <= b.dbablk
           AND e.block_id + e.blocks > b.dbablk;
 
============= 如果在 Top 5 中发现 latch free 热点块事件时,可以从 V$latch_children 中查询具体的子 Latch 信息 ============
SELECT *
 FROM (SELECT  addr, child#, gets, misses, sleeps, immediate_gets igets,
                immediate_misses imiss, spin_gets sgets
           FROM v$latch_children
          WHERE NAME = 'cache buffers chains'
       ORDER BY sleeps DESC)
 WHERE ROWNUM < 11;
 
================ 获取当前持有最热点数据块的 Latch 和 buffer 信息 ==========
SELECT b.addr, a.ts#, a.dbarfil, a.dbablk, a.tch, b.gets, b.misses, b.sleeps
 FROM (SELECT *
         FROM (SELECT  addr, ts#, file#, dbarfil, dbablk, tch, hladdr
                   FROM x$bh
               ORDER BY tch DESC)
        WHERE ROWNUM < 11) a,
      (SELECT addr, gets, misses, sleeps
         FROM v$latch_children
        WHERE NAME = 'cache buffers chains') b
 WHERE a.hladdr = b.addr;
 
=============== 利用前面的 SQL 可以找到这些热点 Buffer 的对象信息 ===========
SELECT distinct e.owner, e.segment_name, e.segment_type
          FROM dba_extents e,
               (SELECT *
                  FROM (SELECT  addr, ts#, file#, dbarfil, dbablk, tch
                            FROM x$bh
                        ORDER BY tch DESC)
                 WHERE ROWNUM < 11) b
         WHERE e.relative_fno = b.dbarfil
           AND e.block_id <= b.dbablk
           AND e.block_id + e.blocks > b.dbablk;
 
================ 结合 SQL 视图可以找到操作这些对象的相关 SQL ,然后通过优化 SQL 减少数据的访问,
或者优化某些容易引起争用的操作(如 connect by 等操作)来减少热点块竞争 =================
 
break on hash_value skip 1
SELECT /*+ rule */ hash_value,sql_text
   FROM v$sqltext
  WHERE (hash_value, address) IN (
           SELECT a.hash_value, a.address
             FROM v$sqltext a,
                  (SELECT DISTINCT a.owner, a.segment_name, a.segment_type
                              FROM dba_extents a,
                                   (SELECT dbarfil, dbablk
                                      FROM (SELECT  dbarfil, dbablk
                                                FROM x$bh
                                            ORDER BY tch DESC)
                                     WHERE ROWNUM < 11) b
                             WHERE a.relative_fno = b.dbarfil
                               AND a.block_id <= b.dbablk
                               AND a.block_id + a.blocks > b.dbablk) b
            WHERE a.sql_text LIKE '%' || b.segment_name || '%'
              AND b.segment_type = 'TABLE')
ORDER BY hash_value, address, piece;

也可以参看 热点块竞争和解决(cache buffers chains)
http://blog.oracle.com.cn/html/32/203732-4268.html







本文转自baoqiangwang51CTO博客,原文链接:http://blog.51cto.com/baoqiangwang/312718 ,如需转载请自行联系原作者
相关文章
|
4月前
|
存储 Oracle NoSQL
Oracle 表空间、数据文件、schema的关系
Oracle 表空间、数据文件、schema的关系
168 2
|
12月前
|
SQL 监控 Oracle
Oracle创建和管理表空间
Oracle创建和管理表空间
82 1
|
12月前
|
存储 Oracle 关系型数据库
Oracle的存储结构
Oracle的存储结构
109 1
|
11月前
|
Oracle 关系型数据库 数据库
9-4 Oracle管理表空间和数据文件
9-4 Oracle管理表空间和数据文件
101 0
|
1月前
|
Oracle 关系型数据库 BI
ORACLE Apex: EBS多组织结构 理解与配置
【8月更文挑战第11天】在Oracle Apex中理解和配置与EBS多组织结构相关内容需掌握:1) EBS多组织结构概念及组成部分,如法律实体、业务单位与库存组织;2) Oracle Apex与EBS集成的目的与方式,包括提供友好界面及自定义业务流程;3) 在Apex中配置多组织结构应用,涉及数据访问控制、页面报表设计及业务流程集成。整体而言,需精通EBS架构与Apex开发技术,以实现高效灵活的企业解决方案。
|
1月前
|
Oracle 关系型数据库 数据库
[oracle]拆分多用户的公共表空间
[oracle]拆分多用户的公共表空间
|
4月前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
92 7
|
4月前
|
SQL Oracle 关系型数据库
Oracle 数据泵导出导入(映射表空间、Schema)
Oracle 数据泵导出导入(映射表空间、Schema)
|
4月前
|
Oracle 关系型数据库 数据库
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
|
4月前
|
存储 Oracle 关系型数据库
Oracle表空间:数据王国的疆域规划
【4月更文挑战第19天】Oracle中的表空间是逻辑存储结构,用于存放数据库对象的物理数据,是数据库性能优化和备份恢复的基础。表空间类型多样,如永久和临时表空间,需根据业务需求进行规划和管理。通过监控使用情况、利用自动扩展功能,可有效管理表空间,提高数据访问速度和可靠性。深入理解表空间有助于优化数据库存储和管理。

推荐镜像

更多