暂无图片
在生产库上面发现redolog一小时切换40次,想知道如何去定位导致切换的源头sql语句。各位大大求解惑
我来答
分享
hzdba
2019-09-26
在生产库上面发现redolog一小时切换40次,想知道如何去定位导致切换的源头sql语句。各位大大求解惑

通过awr里面的segments by db dblocks changge里面定位的objects对象去找到的sql都是selete语句,一般产生redo应该都是dml语句才对吧。。

我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
章芋文

是dml,有可能没到awr的top sql中,可以在数据库中查查看。

暂无图片 评论
暂无图片 有用 0
hzdba

大大,如何在数据库中查询对应影响redolog切换的sql,是查询top dml sql吗?能否提供查询sql脚本😳 😳

暂无图片 评论
暂无图片 有用 0
Jack.Li

--1、redo、archivelog大量产生必然是由于大量产生"块改变"。从awr视图中找出"块改变"最多的segments

select * from (

SELECT to_char(begin_interval_time, 'YYYY_MM_DD HH24:MI') snap_time,

       dhsso.object_name,

       SUM(db_block_changes_delta)

  FROM dba_hist_seg_stat dhss,

       dba_hist_seg_stat_obj dhsso,

       dba_hist_snapshot dhs

 WHERE dhs.snap_id = dhss. snap_id

   AND dhs.instance_number = dhss. instance_number

   AND dhss.obj# = dhsso. obj#

   AND dhss.dataobj# = dhsso.dataobj#

   AND begin_interval_time> sysdate - 60/1440

 GROUP BY to_char(begin_interval_time, 'YYYY_MM_DD HH24:MI'),

          dhsso.object_name

 order by 3 desc)

 where rownum<=5;

 

--2、从awr视图中找出步骤1中排序靠前的对象涉及到的SQL

SELECT to_char(begin_interval_time, 'YYYY_MM_DD HH24:MI'),

       dbms_lob.substr(sql_text, 4000, 1),

       dhss.instance_number,

       dhss.sql_id,

       executions_delta,

       rows_processed_delta

  FROM dba_hist_sqlstat dhss, dba_hist_snapshot dhs, dba_hist_sqltext dhst

 WHERE UPPER(dhst.sql_text) LIKE '%这里写对象名大写%'

   AND dhss.snap_id = dhs.snap_id

   AND dhss.instance_Number = dhs.instance_number

   AND dhss.sql_id = dhst.sql_id;


暂无图片 评论
暂无图片 有用 0
Moone

如下SQL也可以参考:

select *

from (

select timestamp, table_name,inserts,updates,deletes

from dba_tab_modifications

where timestamp>sysdate-1 and (inserts+updates+deletes)>0

order by (inserts+updates+deletes) desc

)

where rownum<=10

/


暂无图片 评论
暂无图片 有用 0
hzdba

感谢各位大大,我去查查

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏