那些被你忽略的性能
来源:互联网 发布:php好吗 编辑:程序博客网 时间:2024/05/29 02:42
点击查看全文
冷菠,资深DBA,著有《Oracle高性能自动化运维》,有近10年的数据库运维、团队管理以及培训经验。擅长数据库备份恢复、数据库性能诊断优化以及数据库自动化运维等。目前致力于大数据、智能一体化、开源云计算等领域的佳实践探索。
Oracle Redo是以条目(Redo record)的形式记录数据库的所有更改操作。这些更改包括数据库物理文件的更改,数据库运行状况更改,后台进程的写操作,DML事务操作,数据字典DDL操作,数据库内部递归调用等。其中,最主要的原因是DML事务的操作。
本文将分析Redo对于数据库DML操作的记录信息,并提出通过减少Redo条目达到优化Redo,提高数据库性能的方案。
DML事务相关的数据库更改有哪些?
- 数据块更改;
- 回滚段数据块镜像更新;
- 数据库内部信息更新(数据字典表更新)。
我们可以通过日志挖掘获取到数据库更改的相关信息,如下:
可以看到,Redo中记录了DML事物的数据块更改、回滚段更新等信息。
如何来减少Redo的产生,从而达到优化Redo的目的
- 减少索引键更新操作;
- 大表(键)更新操作;
- 使用Direct Load加载数据;
- 使用Nologging进行特定操作;
- 使用临时表(Temporary Table);
- 使用外部表(External Table);
- 批量化处理DML业务程序;
- 减少事务Commit次数,采用组提交的方式;
- 减少Select For Update显示锁定,可以明显减少Redo产生;
- 减少表记录的数量规模(利用分区路由架构分区裁剪特性),例如使用分区、分表、分库等策略;
- 减少不必要的DML操作可以减少Redo产生,例如改写、整合SQL程序,优化业务逻辑。
通过示例验证优化的可行性
采用组提交减少Redo的产生:
点击查看全文
阅读全文
0 0
- 那些被你忽略的性能
- 技术人员,请注意那些被你忽略的重要事情
- 技术人员,请注意那些被你忽略的重要事情
- 那些可能被你忽略的MySQL优化技巧
- 那些被你忽略的Android字符串使用姿势!!!
- scanf,那些被忽略的
- 那些被忽略的需求
- 关于JS那些容易被你忽略的那些点(1)
- 关于JS那些容易被你忽略的那些点(2)
- 关于JS那些容易被你忽略的那些点(3)
- [Android 性能优化系列]那些不能忽略的小细节
- [Android 性能优化系列]那些不能忽略的小细节
- 性能优化-那些不能忽略的小细节
- 关于推送,你可能忽略的那些事儿
- 那些被忽略的可怜的标签
- jQuery那些容易被忽略的问题
- 可能被你忽略的TextView属性
- 注意那些容易被忽略的SQL注入技巧
- java中的栈内存和堆内存(笔记)
- 处理多个输入查询
- spring事物回滚机制 (事务异常回滚,捕获异常不抛出就不会回滚)
- 【学习摘记】马士兵Servlet&JSP_课时30_上午复习_准备下午的课——枯燥学习后的教育箴言
- 你想要的下拉刷新和上拉加载框架
- 那些被你忽略的性能
- c# mvc 中linq和ef配合实现批量插入数据
- JVM 垃圾收集器
- Spring_boot定时任务
- jQuery获取窗口大小及窗口大小改变时执行代码实例
- Java & Android 面试题整理
- 福利篇:学习编程视频免费领取
- Ubuntu的一些常用快捷键
- Amazon内购接入流程以及测试