今天做一个7W条记录/s插入oracle数据库的实验。两台服务器都在本地复制一个1280W条记录的表到另外一个相同结构的表里面,一台服务器花了12s另一台却花了近2min。在em中生成插入时的awr报告,在eygle的帮助下,发现是redo日志大小引起的数据库性能下降。
#通过如下语句可以发现数据库很慢的原因是log_sync
SQL> select * from v$session_wait;
#查看日志状态
SQL> select * from v$log;
SQL> select member from v$logfile;
#建立新的日志组
SQL> alter database add logfile  group 4 '/oradata/ora108/redo04.log' 2048m;
SQL> alter database add logfile  group 5 '/oradata/ora108/redo05.log' 2048m;
SQL> alter database add logfile  group 6 '/oradata/ora108/redo06.log' 2048m;
#切换日志,使1,2,3为 inactive 状态
SQL> alter system switch logfile;
SQL> alter system switch logfile;
SQL> alter system switch logfile;
#删除1,2,3组
SQL> alter database drop logfile group 1;
SQL> alter database drop logfile group 2;
SQL> alter database drop logfile group 3;

小贴士:关于undo log

当用户在Buffer Cache中修改数据时,Oracle并不会立即将修改数据写出到数据文件上,因为那样做效率会很低,到目前为止,计算机系统中最繁忙的部分是磁盘的 I/O操作,Oracle这样做的目的是为了减少IO的次数,当修改过的数据达到一定数量之后,可以进行高效地批量写出。
大部分传统数据库(当然包括Oracle)在处理数据修改时都遵循no-force-at-commit策略。也就是说,在提交时并不强制写。那么为了保证数据在数据库发生故障时(例如断电)可以恢复,Oracle引入了Redo机制,通过连续的、顺序的日志条目的写出将随机的、分散的数据块的写出推延。这个推延使得数据的写出可以获得批量效应的性能提升。
同Redo Log Buffer类似,Redo Log File也是循环使用的,Oracle允许使用最少两个日志组。缺省情况下,数据库创建时会建立3个日志组。
    SQL> select group#,members,status from v$log;
    GROUP#    MEMBERS STATUS
    ———- ———- —————-
    1          1 INACTIVE
    2          1 CURRENT
    3          1 INACTIVE
当一个日志文件写满之后,会切换到另外一个日志文件,这个切换过程称为Log Switch。Log Switch会触发一个检查点,促使DBWR进程将写满的日志文件保护的变更数据写回到数据库。在检查点完成之前,日志文件是不能够被重用的。

转载于:https://www.cnblogs.com/sopost/archive/2010/09/07/2190090.html

REDO LOG大小引起的Oracle数据库性能下降相关推荐

  1. oracle数据库性能优化 - 降低IO

    影响到oracle性能的因素主要可以从硬件和软件两个方面划分,本文通过对oracle数据库架构的分析, 提出从硬件方面OLTP系统优化oracle数据库性能的方法,不足之处欢迎拍砖. oracle数据 ...

  2. oracle使用 union all 用自增序列_值得收藏的Oracle数据库性能优化

    值得收藏的Oracle数据库性能优化 年尾了,新的一波面试军又要开始了,被问到最多的可能就是性能优化,尤其是数据库性能优化,这个面试题不管是初中高级工程师都会被问到.因此我觉得下面31点ORACLE优 ...

  3. Oracle数据库性能优化

    此文章主要介绍的是通过优化数据库来大幅度的提高Oracle数据库性能,以下几个简单的相关步骤就可以简单实现Oracle数据库性能,下面就是文章的具体内容的描述,望你浏览之后会对其有所了解. 数据库优化 ...

  4. Oracle数据库性能问题分析的一种常规思路

    点击上方"数据和云" 关注我们! 这两天微信群里在讨论一个Oracle数据库性能问题引起业务问题的案例,一位朋友把分析报告发到了群里.正好有空就看了看,感觉这份报告颇有Oracle ...

  5. oracle数据库影响网络延时,磁盘排序对Oracle数据库性能的影响-通信/网络-与非网...

    当建立同Oracle会话时,会在服务器内存中划分出一个专门用来排序的区域,从而为会话提供排序空间.但是,这个排序空间毕竟有限,若记录数量超过这个排序空间的话,就需要进行磁盘排序.但是,我们都知道,磁盘 ...

  6. 老白Oracle数据库性能优化实务-视频分享

    http://www.400gb.com/u/2718690/4479328 老白Oracle数据库性能优化实务 课程风格: 理论结合实战案例,重点在于介绍优化的思路和工作方法.共享大量技术文档.脚本 ...

  7. MySQL redo log 重做日志 原理 Oracle Redo Log 机制 小结

    MySQL-重做日志 redo log -原理 [redo log buffer][redo log file]-原理 目录: 1.重做日志写入过程图 2.相关知识点汇总图 3.redo_log_bu ...

  8. Oracle数据库性能分析管理-IO分析

    本文原题<ORACLE数据库服务器IO高的分析方案和案例探讨> 目录: ** 1 IO异常繁忙,超出HBA卡端口流程上限,导致卡壳 ** 慧眼识珠--服务器磁盘这么繁忙,到底是谁干的? 谨 ...

  9. oracle张大鹏,Oracle数据库性能优化

    目录 第一篇 优化工具篇 第 1 章 DBA 优化之路 1.1 学习的建议 1.2 工具推荐 1.3 关于操作系统方面的建议 1.4 关于Oracle初始化参数的调整 1.5 关于Statspack的 ...

最新文章

  1. python代码怎么写出色_如何写出更具有Python风格的代码,五分钟教会你!
  2. linux项目课程设计,LINUX课程设计项目需求解析.doc
  3. BERT完全指南-从原理到实践
  4. 从源码编译InfluxDB
  5. 宿舍管理系统设计分析图
  6. 输出节点位移_绝对值信号的编码器有哪些信号输出(一、二)
  7. Parallels Desktop虚拟机Centos系统安装后联网以及互通宿主机
  8. Wine 1.5.15 发布
  9. python—try-expect-else-finally的使用
  10. Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
  11. java网络编程小结(黑马程序员基础java总结)
  12. 422通讯测试软件,通讯软硬件实现通讯测试
  13. 【编译】GCC与CMAKE的关系 MinGW32 和 MinGW-w64的关系
  14. 理查德外推法计算偏导数近似值-python实现
  15. 博客推广——提交搜索引擎
  16. Coreset-Based Neural Network Compression简记
  17. 常规的Git管理流程
  18. 基于云计算的毕业设计题目
  19. 如何利用文字推动业绩 ——营销人员的软文营销
  20. CCTech:测试同学如何参与codereview?

热门文章

  1. 基础的学生成绩管理系统(C语言)
  2. C语言给定3x3矩阵旋转输出
  3. mx250显卡天梯图_笔记本电脑显卡分析(天梯图)
  4. 材料成型过程计算机控制系统,华南理工大学
  5. LeetCode-321 Create Maximum Number
  6. [SDOI2017]遗忘的集合
  7. jquery输入框按下回车提交表单
  8. 深入浅出设计模式——解释器模式(Interpreter Pattern)
  9. Kafka Metrics指标监控
  10. C#托管代码调用C++非托管代码