Oracle12c 性能优化攻略:攻略目录表

注:本文来源于 【美】 Sam Alapati ,   Darl Kuhn ,  Bill Padfield  著   朱浩波 翻译 《Oracle Database 12C 性能优化攻略》一书。

                                                                                                                                                                                            ------整理者:刘军

 源码下载:oracle-db-12c-perf-tuning-recipes-master.zip 

一:优化表性能

 

1:创建具有优化性能的数据库

 

2:创建具有最优性能的表空间安

 

3:匹配表类型与业务需求

 

4:选择有益于性能的表特性

 

5:恰当选择数据类型

 

6:在创建数据表时避免盘区分配延迟

 

7:数据加载速度最大化

 

8:高效移除表中的数据

 

9:显示自动顾问建议

 

10:手工生成段顾问建议

 

11:自动发送段顾问输出点电子邮件

 

12:重建跨多个数据块的数据行

 

 

13:检测行链接和行迁移

 

14:区分行迁移和行链接

 

15:积极预防行迁移/行链接的产生

 

16:检测表中未使用的空间

 

17:追踪检测到位于高水位线下的空间

 

18:使用DBWS_SPACE来检测于高水位线之下的空间

 

19:释放未使用的表存储空间

 

20:压缩数据以进行直接路径加载

 

21:为所有的DML操作压缩数据

 

22:在列级压缩数据

 

 

二:选择和优化索引

1:理解B树索引

2:选择需要建立索引的列

3:创建主键约束和索引

4:确保唯一列值

5:为 外键列创建索引

7:决定何时使用组合索引

8:实现基于函数的索引

9:在虚拟列上创建索引

10:在多个进程并行插入时限制索引争夺

11:触发索引对优化器的可见性

12:创建支持星型架构额位图索引

13:创建位图连接索引

14:创建索引组织表

15:监控索引使用

16:索引创建速度最大化

17:回收未使用的索引空间

三:优化实例内存

1:自动内存管理

2:关联多个缓冲池

3:设定内存最小值

4:监控内存调整操作

5:优化内存使用

6:调优PGA内存分配

7:配置服务器查询缓存

8:管理服务器结果缓存

9:缓存SQL查询结果

10:缓存客户端结果集

11:缓存PL/SQL函数结果

12:配置Oracle数据库智能闪存缓存

13:调节重做日志缓冲区

14:限制PGA内存分配

四:监控系统性能

1: 实现AWR

2:修改统计信息时间间隔和保存期限

3:手工生成AWR报表

4:通过企业管理器生成一份AWR报告

5:为一条SQL生成AWR基线

6:为数据库创建统计基线

7:通过企业管理器关联AWR基线

8:管理AWR统计信息库

9:自动创建AWR基线

10:快速分析AWR输出

11:手工获取活动会话信息

12:从企业管理器中获取ASH信息

13:从数据字典中获取ASH信息

五:最小化系统资源争夺

1:理解响应时间

2:确定引起最多等待的SQL语句

3:分析等待事件

4:理解等待事件的分类

5:检查会话等待

6:按类型检查等待事件

7:解决缓冲区忙等待

8:解决日志文件同步等待

9:被另一个会话读取等待事件的最小化

10:减少直接路径读取等待事件

11:恢复写入器等待最小化

12:找出谁持有阻塞锁

13:确定被阻塞和引起阻塞的会话

14:处理引起的阻塞的锁

15:确定被锁定的对象

16:解决enq:TM锁资源争夺

17:确定最近被锁住的会话

18:分析数据库中最近的等待事件

19:确定由于锁定所花费等待时间

20:锁存器争夺的最小化

六:分析操作系统性能

1:检测磁盘空间问题

2:确定系统瓶颈

3:确定消耗服务器资源最多的进程

4:检测CPU瓶颈

5:确定CPU和内存瓶颈

6:确定I/O瓶颈

7:检测网络密集型进程

8:将一个资源密集型进程映射到一个数据库进程

9:终止一个资源密集型进程

七:检修数据库

1:确定最优的撤销保留时间

2:找出是什么消耗最多的撤销空间

3:解决ORA_01555错误

4:监控临时表空间使用率

5:确定是谁在使用临时表空间

6:解决”无法扩展临时数据段”错误

7:解决打开游标错误

8:解决被挂起的数据库问题

9:激活自动诊断库命令解释器

10:从ADRCI中查看报警日志

11:使用ADRCI查看事件

12:将事件打包发给Oracle技术指出团队

13:运行一次数据库健康检查

14:创建SQL测试用例

15:生成一份AWR报告

16:比较两阶段的数据库性能

17:分析一份AWR报告

八:创建高效的SQL

1:获取一张表中的所有数据行

2:获取一张表中的部分数据行

3:通过想到对应的行来连接表

4:在没有相对应数据行的情况下连接表

5:构造简单的子查询

6:构建相关子查询

7:比较2个表找出缺失的数据行

8:关联2个表找出匹配的数据行

9:将相似SELECT 语句结果集合并

10:查找一定范围内的值

11:处理空值

12:搜索部分列值

13:重用共享池中的SQL语句

14:避免偶然的全表扫描

15:创建高效的临时表

16:避免使用NOT 子句

17:控制事务大小

九:SQL手工调优

1:显示查询的执行计划

2:定制执行计划输出

3:图形化显示执行计划

4:解读一份执行计划

5:监控运行时较长的SQL语句

6:确定当前正在执行的好占资源的SQL语句

7:查看当前正在运行的SQL语句的统计信息

8:监控一个SQL执行计划的处理过程

9:确定过去执行的SQL语句中最耗占资源的语句

10:比较系统修改后的SQL 性能

十:追踪SQL执行

1: 环境准备

     2:在追踪一个特定的SQL语句

    

3:在你所拥有的会话中启用追踪

4:找到追踪文件

5:检查原始SQL追踪文件

6:分析Oracle追踪文件

7:使用TKPROF 设置追踪文件的格式

8:使用TKPROF输出

9:使用Oracle追踪分析器分析追踪文件

10:追踪一个并行查询

11:追踪特定的并行查询进程

12:在RAC系统中追踪并行查询

13:合并多个追踪文件

14:找出正确的回话来进行追踪

15:追踪一个SQL会话

16:通过进程ID来追踪会话

17:追踪多个会话

18:追踪一个实例或数据库

19:为会话生成事件10046追踪

20:为实例生成10046追踪

21:在一个正在运行的会话上设置追踪

22:登录之后启用会话追踪

23:追踪优化的执行路径

24:生成Oracle错误自动追踪

    25:追踪后台进程

26:启用Oracle 监听器追踪

27:为数据卫士设置归档追踪

十一:SQL自动调优

1.   显示自动SQL调优工作详细信息

2.显示sql自动调优建议

3.生成SQL脚本实现自动调优建议

4.修改SQL自动调优特性

5.禁用和启用SQL自动调优

6.修改维护窗口

7.创建SQL调优集对象

8.查看AWR中资源秘籍集型SQL语句

9.用AWR中高资源消耗的SQL来填充优化集

10.查看内存中资源密集型SQL语句

11.用内存中高资源消耗SQL来填充调优集

12.将内存中所有的SQL来填充调优集

13.显示SQL调优集的内容

14.有选择地从SQL调优集中删除语句

15.传输SQL调优集

16.创建调优任务

17.手工运行SQL调优顾问

18.从数据库自动诊断监视器中获取SQL调优建议

十二:执行计划优化与一致性


     

   1:创建并接受SQL概要文件

    2:确认某个查询是否使用了SQL概要文件

  

  3:自动接受SQL概要文件

  

  4:显示SQL概要文件

 

   5:选择性测试SQL概要文件

 

   6:将SQL概要文件迁移到另外一个数据库中

     7:禁用SQL概要文件

  

  8:删除SQL概要文件

   

9:为内存中的一条SQL语句创建计划基线

  

  10:为包含SQL调优集中的SQL语句创建计划基线

    

11:自动增加计划基线

  

  12:修改计划基线

 

   13:确认是否存在计划基线

    14:确认某个查询是否使用了计划基线

    15:显示计划基线执行计划

    16:手工在计划基线中加入一个新的计划(扩展)

 

   17:阻止自动接受新的低成本执行计划

  

  18:禁用计划基线

   

19:移除计划基线信息

  

  20:迁移计划基线

十三:优化配置


    

1:选择器优化目标

   

2:启用统计信息自动收集

  

3:为统计信息收集设置首选参数

  

4:手工生成统计信息

   

5:锁定统计信息

  

6:处理统计信息的缺失

 

  7:导出统计信息

   

8:还原以前版本的统计信息

   

9:收集系统统计信息

 

  10:验证新的统计信息

 

  11:强制优化使用某个索引

   

12:启用查询优化器特性

   

13:阻止数据库创建柱形图

   

14:不使用绑定定量提高性能

   

15:理解自适应游标共享

  

16:在表达式上创建统计信息

  

17:为相关列创建统计信息

 

  18:自动创建列组

  

19:维护分区表统计信息

   

20:为大表并行收集统计信息

  

21:确定统计信息何时过期

   

22:预览统计信息收集对象

十四:实现查询提示


  

1:编写一个提示

 

2:改变访问路径

 

3:改变连接顺序

  

4:改变连接方法

 

5:改变优化器版本

  

6:在快速响应和整体优化之间进行选择

 

7:进行直接路径插入

 

8:在视图中加入提示

  9:缓存查询结果

 

10:将分布式查询引导到一个特定的数据库

十五:并行执行SQL

  1:为特定查询启用并行

  

2:在创建对象时启用并行

  3:为已经存在的对象启用并行

 

4:实现并行DML

  

5:并行创建表

 

6:并行创建索引

  

7:并行重建索引

 

8:并行移动分区

 

9:并行拆分分区

 

10:启用自动解释计划

  11:检查并行解释计划

 

12:监控并行操作

  

13:找出并行进程中的瓶颈

  

14:获取并行回话中详细信息

原文地址:https://www.cnblogs.com/ios9/p/Oracle12c-performance-optimization-index.html