oracle查询dblink连接信息_Oracle实用脚本分享--一键查询热点块和热点块的操作信息...

概述

很多时候我们想了解Oracle数据库中哪些属于热块对象,哪些sql是属于比较频繁操作的,可以怎么查询呢?


查询热块对象

SELECT *  FROM (SELECT O.OWNER, O.OBJECT_NAME, O.OBJECT_TYPE, SUM(TCH) TOUCHTIME FROM X$BH B, DBA_OBJECTS O  WHERE B.OBJ = O.DATA_OBJECT_ID  AND B.TS# > 0  GROUP BY O.OWNER, O.OBJECT_NAME, O.OBJECT_TYPE  ORDER BY SUM(TCH) DESC)  WHERE ROWNUM <= 10; 
977ea8d13d64a68c8deb593e12ffdaba.png

查找热点块操作语句

SELECT /*+rule*/ HASH_VALUE, SQL_ID,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;
c2e71089f3ca182c56ab649a5cc8dec6.png

通过sql_id获取具体sql语句

select listagg(sql_text,' ') within group (order by piece) from v$sqltext where sql_id = '1akucfw1ccd22' group by sql_id
f17f030ea6b0542977a9d99816c75aba.png

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

6b87e8d48e752f67ce66025aa0495ac6.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值