学习笔记:ORACLE 性能优化求生指南

第一章、ORACLE性能调优:一种系统化方法

数据库优化顺序:
    1.调整SQL,PL/SQL 代码及优化物理设计(分区,索引)尽可能的减少应用的请求;
    2.减少对锁,闩锁,缓存及ORACLE代码层级中其它资源的急用来获取最好的并发能力;
    3.在前两步规范化逻辑IO需求的基础上,通过优化ORACLE 内存来最小化物理IO的需求;
    4.通过提供足够的IO带宽并均匀分布系统负载来配置IO子系统以满足上述物理IO需求;


第一阶段:最小化应用负载
    1.优化应用代码;            
        在应用系统中优化修改/重写 SQL,PL/SQL 代码
    2.修改应用数据库的物理实现:
        数据库中调整/修改 索引、反规范化或者分区;
    3.将应用结构化以避免数据库过载:
        避免对数据库发出不必要的数据请求。
    4.最佳实践应用与数据库服务器间的通信
    5.优化数据库物理设计
        创建索引,反规范化设计、创建分区
    6.优化ORACLE 查询优化器
        对SQL 性能进行监测,恰当地配置优化统计信息,必要时覆盖优化器的计划???怎样实现??
    7.优化单条SQL 语句性能
        使用提示(HINT)、存储概要(STORED OUTLINE)、SQL 剖析(PROFILE)、
        以及SQL 重写(REWRITE)来改变SQL 语句的执行计划
    8.使用并行SQL
        允许使用多个进程来执行SQL语句
    9.优化并使用PL/SQL 程序
        特定环境下可以使用PL/SQL 来提高应用性能


第二阶段:降低争用和瓶颈
    闩锁与锁的争用
    闩锁是对共享内存的并发访问的保护;
    锁是对表中数据的访问保护;

第三阶段:降低物理IO

    在试图降低每个IO的时间消耗之前,先尝试降低IO的数量。
    在此基础上,我们将通过配置内存来缓存(CACHE)与缓冲(buffer)IO请示,从而进一步降低IO;

    内存管理:数据库能自动管理内存,但是在确保最优性能方面仍然有大量的工作需要数据库管理员来处理:
    1.确保ORACLE能否从操作系统得到足够的内存。
    2.确保内存在PGA与SGA之间的合理划分,在ORACLE11G 启用自动内存管理。
    3.在特定的内存区域中,对段的分配 做出微调。
    4.对控制排序和连接的参数做出微调。
    5.监控ORACLE的内存分配,并且在必要时进行人工干预。

第四阶段:优化磁盘IO
    确保IO子系统有足够的带宽来处理物理IO请求;
    
    在配置的所有磁盘上均匀的分布负载。
    (raid0 条带化在性能上是最佳方式,raid5 是最差的,raid5有个”写损失“,每次写操作将产生4个实际的读/写操作,
    两次读旧数据及奇偶信息,两次写新的数据及奇偶信息。因此“写性能”非常差。)
    SSD延时较短,NAS也包含相当一部分网络延时;
    ORACLE ASM 提供了一些条带化功能;


*******************************************************************************
第二章:ORACLE体系结构与基本概念



/*   ORACLE PERFORMANCE SURVIVAL GUIDE:  澳:GUY HARRISON 著, 郑勇斌等 译*/

书中涉及到的代码可在以下地址下载及浏览:

http://guyharrison.squarespace.com/opsgsamples/


你可能感兴趣的:(oracle)