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 ,如需转载请自行联系原作者
相关文章
|
2月前
|
存储 Oracle NoSQL
Oracle 表空间、数据文件、schema的关系
Oracle 表空间、数据文件、schema的关系
32 2
|
6月前
|
Oracle 关系型数据库 数据库
9-4 Oracle管理表空间和数据文件
9-4 Oracle管理表空间和数据文件
|
7月前
|
SQL 监控 Oracle
Oracle创建和管理表空间
Oracle创建和管理表空间
59 1
|
7月前
|
存储 Oracle 关系型数据库
Oracle的存储结构
Oracle的存储结构
77 1
|
7天前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
32 7
|
1月前
|
Oracle 关系型数据库 数据库
Oracle系列之五:Oracle表空间
Oracle系列之五:Oracle表空间
|
3月前
|
SQL Oracle 关系型数据库
Oracle PL/SQL 第二章--块结构与标识符
Oracle PL/SQL 第二章--块结构与标识符
|
3月前
|
存储 SQL Oracle
Oracle-Oracle数据库结构
Oracle-Oracle数据库结构
67 0
|
4月前
|
SQL Oracle 关系型数据库
Oracle查看表空间 及表空间是否需要扩展
Oracle查看表空间 及表空间是否需要扩展
26 0
|
6月前
|
Oracle Java 关系型数据库
JSP struts2工资管理系统myeclipse开发oracle数据库bs框架java编程网结构
JSP 工资管理系统是一套完善的struts2设计系统MVC结构,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Oracle10g,使用java语言开发,系统主要采用B/S模式开发。
47 1

推荐镜像

更多