Oracle 11g/12c 编程优化方法(2)
Jerry Zhao 查看讲师
百林哲咨询(北京)有限公司专家团队成员
20余年软件的设计、开发与管理工作,具有编程的经验与技巧,熟悉大型数库库开发、设计、测试、管理,为甲骨文、海关总署、上海中金所、宁夏地税、苏州郎新、中海油、广东联通、伊利集团、中国邮政等培训和咨询。
浏览:2735次
详情 DETAILS

简介

Oracle 11g/12c 系统性能问题可能是数据量太大导致的,也可能是我们编程时使用SQL语句不当导致的,那么,如何才能避免使用不当呢?下面样例可帮助你理解Oracle 系统SQL的使用方法。

目标

1、Oracle 环境应用程序优化方法

2、Oracle 环境应用系统测试方法

3、Oracle 环境应用系统性能问题诊断与调整方法 

课程时长

5天(30H)

受众人群

基于Oracle环境的软件开发人员;基于Oracle 系统的软件测试人员;Oracle 数据库管理人员;Oracle 数据库最终用户相关人员;Oracle 系统应用维护人员

分享提纲

1、Oracle优化与诊断基本知识

了解基于Oracle环境的性能诊断方法非常关键,开发人员和优化工程师可使用你最喜欢而且又是得力的工具,可帮助你快速定位性能问题的根源。

1.1SQL*Plus 环境 

1.2DBA_xxx数据字典

1.3V$_xxx / X$_xxx 性能视图介绍 

1.4附加的数据字典概要 

1.5Oracle 系统诊断工具 

1.6第三方诊断工具 

2、Oracle环境 SQL语句规范与性能

由于编写程序时,SQL语句的书写没有固定的方法和标准,导致应用系统的SQL语句运行效率低下,那么,如何在开发阶段,就对所编写的SQL语句进行规范,是提高应用程序SQL语句运行效率的关键,这里,我们给出了常见的SQL语句规范书写方法详细介绍。

2.1排序优化

2.2简化SQL 

2.3避免SQL语句转换

2.4几个内置函数

2.5避免数据类型转换

2.6其他优化建议

3、Oracle 系统SQL语句处理流程

当应用系统运行效率低下时,我们就对SQL语句进行诊断,SQL语句的处理流程、SQL语句执行计划是帮助我们分析SQL语句性能问题的关键,这里,我们介绍SQL语句处理流程和执行计划分析方法。

3.1 SQL语句优化有关术语

3.2SQL语句处理与相关视图

3.3一个银行业务处理流程

3.4关于SQL语句的执行计划

3.5理解SQL执行过程

3.6操作样例

4、Oracle环境表的连接方法与性能 


4.1表的访问方式

4.2Oracle系统SQL优化器

4.3Oracle系统表的连接方法

4.4使用提示影响表连接 

5、Oracle 11g/12c CBO与提示方法

Oracle 10g版本开始,Oracle 系统优化器采用CBO优化模式,采用CBO模式后,开发人员可对SQL语句采用提示方法来要求优化器的行为,这就是提示方法。本课程介绍基于Oracle 11g/12c版本的常见的提示方法和样例

5.1CBO模式的提示概要

5.2CBO 模式常用提示 

5.3统计数据提示

5.4访问路径提示

5.5表的连接提示

5.6OPTIMIZER_INDEX_COST_ADJ 等参数调整方法

6、Oracle 11g/12c 查询多表的连接方法

当查询语句需要对两个以上表进行查询时,就涉及到表的相关列间连接方法,连接方法是否合理直接导致该SQL语句的效率,这里,我们介绍基于Oracle 12c版本支持的新的连接方法。

6.1SQL 语句与连接入门

6.2样例用户与连接方法

6.3OUTER JOIN方法

6.4Semi/Anti-Joins与性能

6.511g/12c Joins 新变化 

7、Oracle 11g/12c 统计数据与性能

我们虽然知道CBO模式下,搜集表/索引的统计数据很重要,但是,有时我们刚完成了表和索引的统计数据的搜集,查询语句仍然效率低下,这时,我们需要进一步搜集表/索引更详细的数据,比如,搜集列的直方图数据等,此外,还要分析表/索引的详细统计数据等,从而找出问题的根源,从而进行有针对性的解决。

7.1CBO 与统计数据 

7.2列的统计数据/直方图与应用性能 

7.3索引的集群因子与应用性能分析 

7.4如何获取良好的索引集群因子 

7.5Oracle 系统统计数据的搜集 

8、Oracle系统避免锁与锁诊断方法

只要是RDBMS,在处理DML语句时都采用锁机制进行并发控制,Oracle系统中的锁就是避免同一数据被多个会话修改可能产生混乱而设置的机制,在这里,我们介绍Oracle 系统锁概念,以及如何避免不必要的长期锁等,从而降低应用间的等待时间。

8.1关于Oracle系统的锁概念与术语 

8.2不良SQL导致锁问题诊断方法 

8.3复杂问题导致锁的自动数据搜集方法 

8.4锁冲突的诊断脚本与解决方法 

9、Oracle环境应用DML语句优化

当我们研究Oracle 系统的性能问题时,会从网络上搜索相关的性能文章,你会看到如何分析SELECT语句执行计划等,却很少看到如何做才能使DML语句的性能提高。这里,我们通过样例方法介绍如何优化DML语句。

9.1Oracle 实例工作原理回顾

9.2DML/事务/Undo/Redo

9.3INSERT 优化方法

9.4UPDATE/DELETE 优化

9.5并行的使用方法

10、Oracle 12c编程优化的其他方法

当开发人员或维护工程师在进行应用的优化时,经常不知道如何下手,其实,我们的本着一种简单的理念是:“把应该做好的事情做好”。因为,你花许多时间去研究某个语句的性能问题,还不如先将那些我们忽视了很久的事情做好,再去攻破那些顽固的问题。这也是一种解决问题的简单方法。

10.1应用性能有关的参数

10.2CBO 模式的参数

10.3会话级参数的修改方法 

10.4分区表与修剪关键 

10.5何时使用Nologging 问题

11、Oracle 11g/12c SQL优化新方法

Oracle系统的每个版本在性能优化技术方面都经常推陈出新,比如Oracle 9i~10g采用固定执行计划方法来优化SQL语句,Oracle 11g版本采用SQL Baselines 方法;而Oracle 12c版本采用新的自适应SQL计划管理 方法。这里,我们详细介绍这几种SQL语句优化方法,使得你能根据你的环境情况进行适当的调整。

11.1Oracle 9i~12c 版本SQL优化方法回顾 

11.2Oracle 11g/12c DBMS_SPM 优化方法 

11.3Oracle 12c DBMS_SPD 优化方法 

11.4Oracle 12g SQL优化新的变化 

12、Oracle 11g/12c SQL 问题诊断


12.1 Oracle 9i /10g Outlines(计划稳定性方法)回顾 

12.2 11g SQL Tuning Advisor方法 

12.3 12c SQL Baselines 方法 

13、AWR与ADDM及ASH


13.1EM变化

13.2AWR架构

13.3产生ASH报告

13.411g/12c 基准线增强

13.5ADDM 功能

13.6AWR许可与统计数据

13.7ADDM 参数

14、Oracle系统常用诊断工具

Oracle 系统性能诊断与调整是一件具有挑战性的工作,首先,你必须先确定产生性能问题的根源,然后进行针对性的修正。那么,如何诊断Oracle系统的运行阶段出现的性能与故障问题,是每个处理Oracle系统性能问题都关系的问题

14.1常见工具一览表

14.2Unix 监控命令

14.3OS Watcher 工具

14.4The On-Board Monitor 工具

14.5Oracle 11g 内部的视图

15、Oracle 11g/12c诊断工具使用方法


15.1 Statspack 介绍

15.2 使用操作 

15.3 报告研究

15.4 Statspack样例 

15.5 11g/12c 管理包产品

15.6 11g/12c 诊断-包Diagnostic Pack包 

15.7 11g/12c 调整包-Tuning Pack包

16、应用瓶颈问题与诊断方法


16.1会话相关的数据字典与视图 

16.2如何确定问题的大方向 

16.3逐步逼近获取详细SQL语句及相关对象

16.4分析与解决问题及测试 

16.5几个瓶颈案例分析

17、Oracle Hang 现象诊断

Oracle 系统有时突然出现系统没有反应的情况,我们称为Hang住,当Oracle 系统出现Hang住时,如何及时确定问题的起因呢?这里,我们介绍诊断的方法。

17.1Oracle 常见问题

17.2高 CPU 使用查询

17.3I/O 瓶颈诊断

17.4顶级会话诊断

17.5内存异常问题

18、Oracle 系统等待事件与性能诊断 


18.1生活中的等待

18.2Oracle 等待事件概念

18.3Oracle 事件构成与接口

18.4Oracle 常见等待事件与性能问题

18.5Oracle 11g/12c RAC 常见等待事件

19、Oracle 11g/12c Latch 调整方法

Oracle 系统有多种锁,比如DML操作时的表级、行级锁等,此外,Oracle 系统的SGA区的管理也采用一种称为Latch的锁。Latch锁有时也可能导致性能的下降,比如,长时间的Latch等待等,我们介绍Oracle系统Latch锁诊断与调整方法。

19.1RDBMS并发概念

19.2Oracle LOCKS & Latches

19.3Oracle Latch 视图

19.4Oracle Latch 等待事件

19.5降低 Oracle Latch 竞争

20、Oracle系统 Hot Table & Hot Block

其实,Oracle 系统的性能问题不一定就是编程质量导致,可能由于应用系统的表及其相关块出现高频率的竞争导致,这里,我们介绍关于热块、热表等概念,此外,通过样例方法介绍如何诊断热块和降低热块发生。

20.1关于热块概念 

20.2表/索引与热块

20.3热块与等待事件

20.4段的调整

20.5段的I/O统计问题

20.6Data files与Hot spots

20.7常用脚本样例


企业服务热线:400-106-2080
电话:18519192882
投诉建议邮箱:venus@bailinzhe.com
合作邮箱:service@bailinzhe.com
总部地址:
北京市-丰台区-汽车博物馆东路6号3号楼1单元902-B73(园区)
全国客户服务中心:
天津市-南开区-桂苑路15号鑫茂集团鑫茂军民园1号楼A座802-803
公众号
百林哲咨询(北京)有限公司 京ICP备2022035414号-1