当前位置: 首页 > 图文教程 > 数据库 > Oracle > oracle 优化的一点体会

Oracle
常见的一些Oracle初学者的问题
ORACLE认证系统概述
数据库考试简介:Oracle认证
Oracle认证基础知识介绍
ADO连接Oracle Access示例及记录集处理源码
SQL Server和MySQL的安全性分析
用Oracle和SQL Server数据库组合利弊分析
Oracle 11g分区功能新革命
Flashback Query 恢复误删除的数据
基于Oracle高性能动态SQL程序开发
怎样在Oracle 9i中正确的转换时区
Oracle 10g导出的数据库能否导入Oracle 9i?
增加Distinct后查询效率反而提高
Oracle限制返回结果集的大小
Java语言数据库操作的基本流程
美国甲骨文(ORACLE)公司入驻渝中区大都会商厦
RHEL AS4上安装oracle 10R2 的方法
DB中如何查询Table占用空间的大小
编写高质量高性能的MySQL语法
Oracle数据库自动备份的具体实现步骤

Oracle 中的 oracle 优化的一点体会


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 112 ::
收藏到网摘: n/a

oracle 优化的一点体会大家可以参考下,提升运行效率。 关于oracle 优化的内容很多,概念庞杂,不过可以总结出一个大纲性的东西作为需要考虑的方向,然后再逐步细化。oracle优化按重要性需要考虑设计、开发、调整几个方面。
首先是设计,这是最重要的部分,借用TOM的话:“性能是设计出来的,不是调整出来的”。设计分为逻辑设计和物理设计,逻辑设计一般要遵循3NF,同时也要根据应用的需要引入逆规范化的设计,应为NF设计虽然消除了数据冗余,但随着规范化越高需要连接的表可能越多,同样对性能有影响,所以需要平衡考虑,至于何时要3NF,何时要逆规范化,要是具体情况而定。
物理设计一个是存储,比如物理文件、联机日志文件、归档日志文件的磁盘布局,各种RAID的使用等(在这方面piner的分析比较全面细致),第二是要根据应用的特性,选择文件组织方式,灵活运用oracle的各种表和索引类型,例如交叉表可以考虑使用IOT、读密集型并且经常关联的字段使用cluster,还有全局临时表、外部表等等。除了普通的B树索引外,在低基数情况下考虑使用位图索引,使用函数时引入基于函数的索引等。
其次是开发阶段,比如老生常谈的使用绑定变量、外键加索引、使用bulk collect、分析函数、直接路径加载,在OLAP应用中使用partition、MV、位图索引、并行化操作等等。没种技术要深入研究都有很多内容。
最后才是调整,这是在出现性能问题时采用的手段。这已经形成了一个完整的方法论。
1)设立合理的性能优化目标。
2)测量并记录当前性能(STATSPACK、AWR等)。
3)确定当前Oracle性能瓶颈(从Oracle 等待接口v$system_event、v$session_event和v$session_wait中获得等待事件,进而找出影响性能的对象和sql语句
)。
4)把等待事件记入跟踪文件(autotrace、10046事件等)。
5)确定当前的OS瓶颈(sar、iostat、cpustat、mpstat、netstat、top、osview等)。
6)优化所需的成分(应用程序、数据库、I/O、争用、OS等)。
7)跟踪并实施更改控制过程。
8)测量并记录当前性能
9)重复步骤3到7,直到满足优化目标
以上是本人对Oracle优化的一些粗线条的体会,可以指出优化需要考虑的大的方向,而相关的技术细节非常多,每项都要仔细研究,正如piner总结的:多思考、多实践、多总结。
再记点题外话,公司节后要对技术部作人员调整,说白了就是裁人,这次除了要个网管保证能上网就不留技术的人了,假期准备简历,节后找工作。