注:本文来源于 【美】 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:获取并行回话中详细信息

Oracle12c 性能优化攻略:攻略目录表的更多相关文章

  1. Oracle12c 性能优化攻略:攻略1-3: 匹配表类型与业务需求

    注:目录表 <Oracle12c 性能优化攻略:攻略目录表> 问题描述 你刚开始使用oracle数据库,并且学习了一些关于可用的各种表类型的知识.例如:可以在堆组织表.索引组织表等之间支出 ...

  2. Oracle12c 性能优化攻略:攻略1-2:创建具有最优性能的表空间

    问题描述:    1:表空间是存储数据库对象(例如索引 .表)的逻辑容器.    2:在创建数据库对象不为其指定存储属性,则相应的表和索引会自动继承表空间的存储特性.    故:若需要好的索引.表的性 ...

  3. Oracle12c 性能优化攻略:攻略1-1:创建具有最优性能的数据库

    一:章节前言 本章着眼于影响表中数据存储性能的数据库特性. 表的性能部分取决于在创建之前所应用的数据库特性.例如:在最初创建数据库时采用的物理存储特性以及相关的表空间都会在后来影响表的性能.类似地,表 ...

  4. 【SQL Server性能优化】SQL Server 2008该表压缩

    当数据库是比较大的,而当你想备份,我们可以启动数据库备份压缩.这项由于备份文件比较小的压缩,所以整个备份的更快的速度,同时还低了磁盘空间的消耗. 当然还有一方面.肯定会添加cpu的消耗.只是一般的se ...

  5. mysql 性能优化索引、缓存、分表、分布式实现方式。

    系统针对5000台终端测试结果 索引 目标:优化查询速度3秒以内 需要优化.尽量避免使用select * 来查询对象.使用到哪些属性值就查询出哪些使用即可 首页页面: 设备-组织查询 优化 避免使用s ...

  6. MySQL插入性能优化

    目录 MySQL插入性能优化 代码优化 values 多个 一个事务 插入字段尽量少,尽量用默认值 关闭 unique_checks bulk_insert_buffer_size 配置优化 inno ...

  7. 一次 group by + order by 性能优化分析

    一次 group by + order by 性能优化分析 最近通过一个日志表做排行的时候发现特别卡,最后问题得到了解决,梳理一些索引和MySQL执行过程的经验,但是最后还是有5个谜题没解开,希望大家 ...

  8. Sql Server性能排查和优化懒人攻略

    转载自作者zhang502219048的微信公众号[SQL数据库编程]:Sql Server性能排查和优化懒人攻略 很多年前,笔者那时刚从广东技术师范学院(现为广东技术师范大学,以前为广东民族学院)的 ...

  9. IIS网站服务器性能优化攻略

    Windows Server自带的互联网信息服务器(Internet Information Server,IIS)是架设网站服务器的常用工具,它是一个既简单而又麻烦的东西,新手都可以使用IIS架设一 ...

随机推荐

  1. Error configuring application listener of

    最近在做spring+struts2+IbatIS的项目,昨天eclipse启动服务器正常,结果今天来了就总是报错,错误如下:严重: Error configuring application lis ...

  2. Microsoft JET Database Engine 错误 '80004005' 未指定错误

    Microsoft JET Database Engine 错误 '80004005'未指定错误 =====解决=======出现这种“未指定错误”时,可以尝试重新注册ASP脚本解释链接库文件在CMD ...

  3. MUI 底部弹出的选择框

    大致是这样: 第一种方法:这种方法是使用5+的nativeUI原生动画 1)引入:mui.css或者mui.min.css mui.js或者mui.min.js也行 mui.picker.min.js ...

  4. python influxdb

    Git:https://github.com/influxdata/influxdb-python 帮助文档:http://influxdb-python.readthedocs.io/en/late ...

  5. ulimit常用参数介绍

    ulimit常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小.进 ...

  6. Linux操作系统原理

    Linux操作系统原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.计算机经历的四个时代 1.第一代: 真空管计算机,输入和输出:穿孔卡片,对计算机操作起来非常不便,做一件事 ...

  7. libevent-2.0.so.5 (安装MEMCACHED问题)

    今天安装memcache启动服务时出现 error while loading shared libraries: libevent-2.0.so.5: cannot open shared obje ...

  8. groovy.lang.GroovyRuntimeException: Conflicting module versions

    在运行groovy的junit方法时,报了这个错误: java.lang.ExceptionInInitializerError at org.codehaus.groovy.reflection.C ...

  9. JavaScript 从入门到放弃(一)事件委托和使用innerHTML添加元素

    一.使用事件委托 一个简单的需求,比如想给ul下面的li加上点击事件,点击哪个li,就显示那个li的innerHTML.这个貌似很简单!代码如下! <!DOCTYPE html> < ...

  10. 机器学习:Python实现聚类算法(二)之AP算法

    1.算法简介 AP(Affinity Propagation)通常被翻译为近邻传播算法或者亲和力传播算法,是在2007年的Science杂志上提出的一种新的聚类算法.AP算法的基本思想是将全部数据点都 ...