一、诊断过度redo

要找到生成大量重做的会话,您可以使用以下任何一种方法。这两种方法都检查生成的撤销量。
当一个事务生成撤销,它将自动生成重做。

当需要检查生成大量的程序时,使用第一个查询。当这些程序激活多个事务时重做。
后者查询,可以用来发现哪些特定事务正在生成重做。

1)法一 (针对某程序累计redo生成量)

查询 V$SESS_IO ,此视图包含指示的列BLOCK_CHANGES。
该会话更改了多少块。比较高的值表明,会话生成大量重做.

SELECT s.sid, s.serial#, s.username, s.program,
i.block_changes
FROM v$session s, v$sess_io i
WHERE s.sid = i.sid
ORDER BY 5 desc, 1, 2, 3, 4;

SID SERIAL# USERNAME PROGRAM BLOCK_CHANGES
---------- ---------- ------------------------------ ------------------------------------------------ -------------
331 393 SYS sqlplus@orastb.bonc.com.cn (TNS V1-V3) 210481
241 1 oracle@orastb.bonc.com.cn (SMON) 65308

2)法二 (针对正在运行事务redo生成量)
查询V$TRANSACTION.此视图包含有关事务信息的撤销块和撤消记录。(在 USED_UBLK and USED_UREC 中)

SELECT s.sid, s.serial#, s.username, s.program,
t.used_ublk, t.used_urec
FROM v$session s, v$transaction t
WHERE s.taddr = t.addr
ORDER BY 5 desc, 6 desc, 1, 2, 3, 4;

SID SERIAL# USERNAME PROGRAM USED_UBLK USED_UREC
---------- ---------- ------------------------------ --------------------------------------- ----- -----
1 227 ANDY sqlplus@orastb.bonc.com.cn (TNS V1-V3) 37 2044

二、如何诊断过度的重做生成。

高 redo 通常分为两类:
1。在一天的特定时间内。
2。存档日志的突然增加。
在这两种情况下,首先要检查的是数据库级别上的任何修改(修改任何参数、执行的任何维护操作、..)和应用程序级别(部署新应用程序,修改代码,增加用户,..)。
要知道高重做的确切原因,我们需要关于重做活动的信息和负载的详细信息。以下信息需要收集在高redo做生成期间。

1]要知道日志切换的趋势,可以使用以下查询。
SQL> alter session set NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS';

SQL>select trunc(first_time, 'HH') , count(*)
from v$loghist
group by trunc(first_time, 'HH')
order by trunc(first_time, 'HH');

TRUNC(FIRST_TIME,'HH COUNT(*)
-------------------- ----------
29-MAY-2008 13:00:00 126
29-MAY-2008 14:00:00 135 <- Indicate 135 log switches from 2-3 PM.
29-MAY-2008 15:00:00 112

-- 运行以下查询,了解在任何特定时间生成高重做的会话
col program for a10
col username for a10
select to_char(sysdate,'hh24:mi'), username, program , a.sid, a.serial#, b.name, c.value
from v$session a, v$statname b, v$sesstat c
where b.STATISTIC# =c.STATISTIC#
and c.sid=a.sid and b.name like 'redo size%'
order by value;

oracle之 redo过高诊断的更多相关文章

  1. 【转】ORACLE的REDO与UNDO

    一.什么是redo?redo:oracle在在线或者归档重做日志文件中的记录的信息,外以出现失败时可以利用这些数据来"重放"事务.每个oracle数据都至少有二个在线重做日志组,每 ...

  2. oracle运行速度与效率高的秘密

    使用过Oracle的人都知道,Oracle的运行速度与效率,在同类数据库中是名列前茅的,特别是对大量数据进行访问时,更加有出色的表现.那么,Oracle数据库是靠什么实现的呢?笔者下面将通过一系列的文 ...

  3. 删除Oracle Online Redo 测试

    删除Oracle Online Redo 测试 SQL> select * from v$log; ​   GROUP#   THREAD# SEQUENCE#     BYTES BLOCKS ...

  4. Oracle和MySQL的高可用方案对比【转】

    关于Oracle和MySQL的高可用方案,其实一直想要总结了,就会分为几个系列来简单说说.通过这样的对比,会对两种数据库架构设计上的细节差异有一个基本的认识.Oracle有一套很成熟的解决方案.用我在 ...

  5. Oracle SQL CPU占用高

    Oracle数据库经常会遇到CPU利用率很高的情况,这种时候大都是数据库中存在着严重性能低下的SQL语句,这种SQL语句大大的消耗了CPU资源,导致整个系统性能低下.当然,引起严重性能低下的SQL语句 ...

  6. [转]Oracle High Water Level高水位分析

    PLSQL_性能优化系列14_Oracle High Water Level高水位分析 http://www.cnblogs.com/eastsea/p/4005814.html 一.摘要 PLSQL ...

  7. oracle undo redo 解析

    Undo是干嘛用的?          简单理解,就相当于Windows下的回收站.        你对数据执行修改时,数据库会生成undo信息,这样万一你执行的事务或语句由于某种原因失败了,或者如果 ...

  8. [转]定位占用oracle数据库cpu过高的sql

    今天在吃饭的时候我的朋友的数据库出现了问题,cpu占用率为97%,当我看到这个问题的时候我就想到了或许是sql导致的此问题,由于忍不住吃饭,暂时没有帮他看这个问题,这是我饭后自己模拟的故障,进行的分析 ...

  9. Oracle 9 - redo和undo

    1.redo redo 有在线redo日志和归档redo日志, 从Oracle 10g开始还新增加了flashback技术. 每个Oracle数据库至少有2个在线重做日志组,循环写. 只有INSERT ...

随机推荐

  1. 关于floyd 打印路径的问题

    我们令    f[i][j]  表示从 i-->j的最短路上j前面的那个点. 显然初始化时  f[i][j]=i;  (这样的话先判断一下i是否能到达j好点) 更新条件时,当发现通过点k能使最短 ...

  2. HDU-1272 小希的迷宫 (并查集、判断图是否为树)

    Description 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就 ...

  3. 基础最短路(模板 bellman_ford)

    Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店 ...

  4. exec可以用来执行语句的

    set @sql='select * from '+@table print @sql exec(@sql)

  5. 浅析postgresql数据库事务及行锁特征

    开源数据库领域,postgresql以其优越的性能.功能及良好的稳定性排名首位可谓当之无愧,尤其是对高并发的支持可谓匠心独具.而优越的性能和稳定性,究其根本无非是良好的基础架构,本文将对其性能和稳定性 ...

  6. spring的FactoryBean

    (以下内容翻译自spring/docs/3.2.18.RELEASE) 为具有工厂属性的对象实现FactoryBean接口. FactoryBean接口是spring IoC 容器实例化逻辑的一点补充 ...

  7. spring boot 学习(九)小工具篇:?秒防刷新

    注解 + 拦截器:?秒防刷新 小工具篇:工具许多都是我以前在 github 之类开源平台找到的小工具类,作者的信息什么的许多都忘了.先说声不好意思了.若有相关信息,麻烦提醒一下~ 解释 所谓的?秒防刷 ...

  8. 060——VUE中vue-router之路由嵌套在文章系统中的使用方法:

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. SQL Server 调优系列进阶篇 - 深入剖析统计信息

    前言 经过前几篇的分析,其实大体已经初窥到SQL Server统计信息的重要性了,所以本篇就要祭出这个神器了. 该篇内容会很长,坐好板凳,瓜子零食之类... 不废话,进正题 技术准备 数据库版本为SQ ...

  10. 快速切题 sgu 111.Very simple problem 大数 开平方 难度:0 非java:1

    111.Very simple problem time limit per test: 0.5 sec. memory limit per test: 4096 KB You are given n ...