优化思路
第一阶段:最小化应用负载
A、优化应用代码:改变应用代码,向数据库发出更少的请求。重写SQL或PL/SQL。
B、修改应用数据库的物理实现:调整索引、反规范化或者分区。
C、将应用结构化以避免数据库过载:避免对数据库发出不必要的请求,最小化锁和其他争用。
D、在与ORACLE数据库服务器通信时使用最佳实践:最小化网络往返操作和不必要的请求。
E、优化数据库物理设计:创建索引、反规范化、创建分区以及其他涉及数据物理结构的方式来减少执行SQL请求相关操作。
F、优化ORACLE的查询优化器:恰当的配置优化器的统计信息,在必要的时候覆盖优化器的计划,开始对SQL的性能进行不断监测。
G、优化单条SQL语句性能:使用提示(hint)、存储概要(stored outline)、SQL剖析(Profile)以及SQL重写(rewrite)来改变SQL的执行计划。
H、使用并行SQL:允许使用多个进程来执行SQL语句。
I、优化并使用PL/SQL程序:特性环境下PL/SQL可以提高性能。
第二阶段:降低争用和瓶颈
A、监测并处理锁争用。
B、优化保护Oracle共享内存的闩锁机制。
C、定位并解决共享内存本身的争用。
第三阶段:降低物理IO
A、确保ORACLE能否从操作系统得到足够的内存。
B、确保内存在PGA与SGA之间的合理划分:oracle 11g可以使用自动内存管理。
C、在特定的内存区域中对段的分配做出微调。
D、对控制排序和连接的参数做出微调。
E、监控ORACLE的内存分配,并且在必要时进行人工干预。
第四阶段:优化磁盘IO
A、理解ORACLE的IO机制:缓存IO与直接IO,重做与归档日志IO,闪回IO及其他机制。
B、测量IO性能以及计算最优磁盘配置。
C、使用包含RAID级别在内的数据条带机制。
D、使用特定的IO相关技术,如ASM与SSD。