/**PageBeginHtml Block Begin **/ /***自定义返回顶部小火箭***/ /*生成博客目录的JS 开始*/ /*生成博客目录的JS 结束*/

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:获取并行回话中详细信息

posted @ 2017-08-31 13:29  一品堂.技术学习笔记  阅读(3203)  评论(0编辑  收藏  举报