查找引起redo日志暴增的SQL语句--脚本
来源:互联网 发布:德拉诺飞行软件 编辑:程序博客网 时间:2024/05/17 17:46
此脚本转自梁敬彬老师的《收获,不止SQL优化》,感谢老师的分享
redo日志暴增会间接导致归档日志数量增加,严重的会导致撑爆归档日志的存储空间,导致无法连接数据库。
查询最近几天,每小时归档日志产生数量--脚本:
http://blog.csdn.net/u010692693/article/details/75309167
1. redo大量产生必然是由于大量产生"块改变"。从awr视图中找到"块改变"最多的segment。
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 - 120/1440 GROUP BY to_char(begin_interval_time, 'YYYY_MM_DD HH24:MI'), dhsso.object_name order by 3 desc) where rownum<=5;SNAP_TIME OBJECT_NAME SUM(DB_BLOCK_CHANGES_DELTA)---------------- ------------------------------ ---------------------------2017_07_19 01:00 TEST_REDO 2222082017_07_19 01:00 WRH$_SYSMETRIC_HISTORY_INDEX 1122017_07_19 01:00 WRH$_PARAMETER_PK 1122017_07_19 01:00 WRM$_SNAPSHOT_DETAILS 802017_07_19 01:00 WRI$_ADV_PARAMETERS_PK 48这是查询最近2小时(120分钟)的,begin_interval_time> sysdate - 120/1440修改查询最近多少分钟的
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 '%TEST_REDO%' AND dhss.snap_id = dhs.snap_id AND dhss.instance_Number = dhs.instance_number AND dhss.sql_id = dhst.sql_id;TO_CHAR(BEGIN_INTERVAL_TIME,'Y DBMS_LOB.SUBSTR(SQL_TEXT,4000, INSTANCE_NUMBER SQL_ID EXECUTIONS_DELTA ROWS_PROCESSED_DELTA------------------------------ -------------------------------------------------------------------------------- --------------- ------------- ---------------- --------------------2017_07_19 01:00 insert into test_redo select * from test_redo 1 g893rmm0rmjra 5 26858402017_07_19 01:00 insert into test_redo select * from test_redo where rownum<=10000 1 b7z56jkxs5jam 14 1400002017_07_19 01:00 SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE NO_PARALLEL(SAMPLESUB 1 7q4g3xymr4yhz 3 3LIKE '%TEST_REDO%'中TEST_REDO是步骤1中查询出来的OBJECT_NAME,可以替换您查询的结果
3. 从ASH相关视图找到执行这些SQL的session、module和machine。
select * from dba_hist_active_sess_history WHERE sql_id = 'g893rmm0rmjra';select * from v$active_session_history where sql_Id = 'g893rmm0rmjra';g893rmm0rmjra是SQL_ID,替换第二步查询的结果SQL_ID列
4. dba_soure 看看是否有存储过程包含这个SQL。
阅读全文
0 0
- 查找引起redo日志暴增的SQL语句--脚本
- Scripts:基于时间显示闪回日志中redo的脚本fdb_redo_time_matrix.sql
- oracle Logminer日志挖掘redo log中的sql语句
- ORACLE的redo日志
- 自我总结的一引起SQL语句
- Mysql SQL语句过长引起的问题
- 查找LOV的SQL脚本
- sql 减小日志的语句
- sql语句脚本的创建
- redo日志丢失的恢复
- redo日志丢失的恢复
- REDO日志的基本结构
- 检查REDO日志相关信息并生成HTML文件的脚本
- 非IMU模式下DML语句产生的REDO日志内容格式解读
- 在SQL脚本中的注释引起的奇怪问题
- 由写sql语句的.xml文件引起的异常
- Mysql5.7.11中groupby的sql语句引起的异常
- 一个因为sql语句引起的服务器挂掉
- THREE.JS的材质material一些注意的属性
- 详解mysql的悲观锁与乐观锁
- centos7怎么访问虚拟机的web服务
- input中id和name的区别
- 家庭监控,网络摄像头(OpenWRT平台下Mjpg-Streamer+Ngrok实现方案)
- 查找引起redo日志暴增的SQL语句--脚本
- 网页爬虫-R语言实现基本函数
- 重温鸟哥5--7章、LinuxC编程3--5章小知识点的笔记
- 基于二叉堆实现的优先队列和堆排序
- Python 用OPEN读文件报错 ,路径以及r
- python2.7进行爬虫百度POI代码(划分小网格算法)
- sql 安装过程和安装密钥
- SQL中语句:UNION all与UNION 的用法与区别
- 如何解决BIGINT UNSIGNED value is out of range