REDO LOG大小引起的Oracle数据库性能下降
今天做一个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数据库性能下降相关推荐
- oracle数据库性能优化 - 降低IO
影响到oracle性能的因素主要可以从硬件和软件两个方面划分,本文通过对oracle数据库架构的分析, 提出从硬件方面OLTP系统优化oracle数据库性能的方法,不足之处欢迎拍砖. oracle数据 ...
- oracle使用 union all 用自增序列_值得收藏的Oracle数据库性能优化
值得收藏的Oracle数据库性能优化 年尾了,新的一波面试军又要开始了,被问到最多的可能就是性能优化,尤其是数据库性能优化,这个面试题不管是初中高级工程师都会被问到.因此我觉得下面31点ORACLE优 ...
- Oracle数据库性能优化
此文章主要介绍的是通过优化数据库来大幅度的提高Oracle数据库性能,以下几个简单的相关步骤就可以简单实现Oracle数据库性能,下面就是文章的具体内容的描述,望你浏览之后会对其有所了解. 数据库优化 ...
- Oracle数据库性能问题分析的一种常规思路
点击上方"数据和云" 关注我们! 这两天微信群里在讨论一个Oracle数据库性能问题引起业务问题的案例,一位朋友把分析报告发到了群里.正好有空就看了看,感觉这份报告颇有Oracle ...
- oracle数据库影响网络延时,磁盘排序对Oracle数据库性能的影响-通信/网络-与非网...
当建立同Oracle会话时,会在服务器内存中划分出一个专门用来排序的区域,从而为会话提供排序空间.但是,这个排序空间毕竟有限,若记录数量超过这个排序空间的话,就需要进行磁盘排序.但是,我们都知道,磁盘 ...
- 老白Oracle数据库性能优化实务-视频分享
http://www.400gb.com/u/2718690/4479328 老白Oracle数据库性能优化实务 课程风格: 理论结合实战案例,重点在于介绍优化的思路和工作方法.共享大量技术文档.脚本 ...
- MySQL redo log 重做日志 原理 Oracle Redo Log 机制 小结
MySQL-重做日志 redo log -原理 [redo log buffer][redo log file]-原理 目录: 1.重做日志写入过程图 2.相关知识点汇总图 3.redo_log_bu ...
- Oracle数据库性能分析管理-IO分析
本文原题<ORACLE数据库服务器IO高的分析方案和案例探讨> 目录: ** 1 IO异常繁忙,超出HBA卡端口流程上限,导致卡壳 ** 慧眼识珠--服务器磁盘这么繁忙,到底是谁干的? 谨 ...
- oracle张大鹏,Oracle数据库性能优化
目录 第一篇 优化工具篇 第 1 章 DBA 优化之路 1.1 学习的建议 1.2 工具推荐 1.3 关于操作系统方面的建议 1.4 关于Oracle初始化参数的调整 1.5 关于Statspack的 ...
最新文章
- python代码怎么写出色_如何写出更具有Python风格的代码,五分钟教会你!
- linux项目课程设计,LINUX课程设计项目需求解析.doc
- BERT完全指南-从原理到实践
- 从源码编译InfluxDB
- 宿舍管理系统设计分析图
- 输出节点位移_绝对值信号的编码器有哪些信号输出(一、二)
- Parallels Desktop虚拟机Centos系统安装后联网以及互通宿主机
- Wine 1.5.15 发布
- python—try-expect-else-finally的使用
- Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
- java网络编程小结(黑马程序员基础java总结)
- 422通讯测试软件,通讯软硬件实现通讯测试
- 【编译】GCC与CMAKE的关系 MinGW32 和 MinGW-w64的关系
- 理查德外推法计算偏导数近似值-python实现
- 博客推广——提交搜索引擎
- Coreset-Based Neural Network Compression简记
- 常规的Git管理流程
- 基于云计算的毕业设计题目
- 如何利用文字推动业绩 ——营销人员的软文营销
- CCTech:测试同学如何参与codereview?