Oracle技术交流 --- 应用优化

  • 格式:pdf
  • 大小:695.17 KB
  • 文档页数:56

<Insert Picture Here>Oracle技术交流----应用优化内容技术交流概述Oracle应用性能优化(1)Oracle应用性能优化(2)交流•数据库性能调优•9i部分纵览、诊断和调优工具、SGA评估、数据库配置和I/O问题、优化排序操作、优化回滚段、诊断锁冲突、统计和等待事件、共享池调优、缓冲器调优、PGA和临时空间调优•10G部分在9i基础上,针对以上内容,讲一些在10G中比较重要基础上针对以上内容讲一些在的点,以及与9i调优不同的地方。

•statspack、os_watcher、oracle rda每一个工具的安装、使用。

每一个工具的核心功能使用、报告的分析。

这些工具的使用经验。

使用经验每一个工具的非核心功能的使用方法。

一天时间学会所有工具比较困难关键是学会方法有工具比较困难,关键是学会方法。

最低水平,能看懂oracle工程师到现场巡检调优后出具的这类报告。

因为oracle厂商的巡检报告中包括了的这类报告因为oracle的各个方面。

•SQL调优Q语句处p和q跟踪和p规SQL语句处理、explain autotrace、sql tkprof、规则性优化和成本性优化、索引和基本访问方法、集中统计、改变优化器、排序和连接、优化方案稳定性、分区管理•数据库诊断介绍、诊断事件、宕机与挂起与死循环、内存管理和heap 介诊断事件宕机与挂起与循内存管corruption、数据块分析dump分析、索引和索引块dump 分析、undo段corruption和恢复分析•10g特性及高可用性架构根据电话会议交流内容,建议增加对10g RAC、ASM等方根据电话会议交流内容建议增加对10g RAC面内容的介绍。

即Oracle 10g高可用性体系架构方面的介绍。

交流总体策略•在3天的有限时间内,我们将按照如下策略和原则,合理安排培训内容:•先易后难•突出若干重点和实用技术,讲深讲透。

例如突出SQL应用优化和系统级优化,而系统架构则作为概要介绍。

•尽量结合实际案例,介绍相关技术的实践经验•描述Oracle总体技术和产品蓝图,为客户IT系统基础架构的长远发展提供参考。

•Oracle应用性能优化:1.5天•性能调优方法论•SQL语句执行过程•SQL分析基础诊断工作:执行计划(EXPLAIN)、AUTOTRACE、SQL Trace和TKPROFSQL Trace•基于规则优化器(RBO)和基于成本优化器(CBO)•索引及数据访问方式•排序(Sort)和连接(Join)的优化•高级索引的使用•物化视图(汇总表)和临时表的使用•如何利用物化视图优化大型统计报表•并行处理的相关经验•数据仓库应用的优化•应用级优化案例介绍•系统级性能优化:0.5天•Statspack/AWR报告分析•ADDM分析报告•Share Pool优化•Buffer Cache优化Buffer Cache•自动共享内存管理技术•I/O优化•日志优化•锁分析和解决•PGA及临时表空间优化•数据库空间管理•系统级优化案例介绍•性能优化服务解决方案物理设计和分区技术专题:0.5天•Oracle物理设计技术概述•10g物理设计新技术:大表空间、临时表空间组等技术•分区技术概述•分区原则设计•表分区方法和设计策略•索引分区方法和设计策略•分区表空间方案设计和实施分表方案设计实•应用开发对分区技术的运用•备份恢复、数据生命周期管理中分区技术的运用•11g分区新特性•分区实施案例介绍•分区实施服务解决方案故障诊断分析:0.5天•Oracle技术服务体系介绍•Metalink网站介绍•常见工具的使用•RDA•Statspack/AWR•ADDM数据坏•数据坏块的处理•Oracle版本和补丁管理•Oracle版本和补丁类别介绍•Oracle补丁基本策略介绍•Oracle补丁安装技术介绍•补丁管理服务•补丁实施案例介绍•补丁分析和推荐实施服务解决方案Oracle网格计算和最大可用性体系结构•Oracle网格计算及MAA概述•针对系统故障的RAC技术•针对数据故障的Data Guard、Streams、GoldenGate、ASM、Flashback等技术•针对系统变更的在线变更、滚动升级、应用在线升级等技术•针对数据变更的在线重定义技术•高可用性方案比较和选择•MAA服务解决方案内容技术交流概述Oracle应用性能优化(1)Oracle应用性能优化(2)交流•调系统参数–“你调了哪些参数?”•系统管理员、DBA不是魔术师。

•调参数是必要条件,但不是充分条件•数据库性能主要是系统问题,是系统管理员工作,与软数据库性能主要是系统问题是系统管理员工作与软件开发人员关系不大。

•性能问题与系统设计、开发、运维人、原厂商等均相关。

•数据库性能主要在系统上线,压力增加之后再进行考虑。

开发阶段无需太多考虑。

开发阶段无需太多考虑•性能问题与软件工程所有时间周期相关。

•“告诉我如何把SQL语句改一改,能执行得更快点。

”•性能与语法没有直接关联。

性能与语法没有直接关联•多表连接性能太差,应该通过应用分步骤做。

•请记住,我们用的是关系数据库。

•CPU利用率越低越好,CPU利用率高我就紧张•开了十个门,我们都走一个门,吞吐量高吗?•我的数据处理都在内存完成,没有什么磁盘I/O,应该不会再有性能我的数据处理都在内存完成没有什么磁盘应该不会再有性能问题?•在内存做,同样会消耗CPU资源。

•一定要深入了解各种事件、Latch、缓冲池的具体情况•这些都是表象。

绝大部分情况下,原因在于应用的设计和开发如何建设高质量的IT 系统•涉及层面系统性能出•实现目标¾硬件¾网络用户现问题!问题原因¾响应速度¾吞吐量¾操作系统¾集群软件¾数据库¾高可用性¾数据/备份恢复¾数据安全性¾应用软件•涉及时间周期操作系统网络数据安性¾易管理性¾扩展性¾系统设计¾开发和测试数据库应用¾容灾能力¾产品上线¾运行维护主机/存储Oracle 数据库性能问题原因举例数据库操作系统网络存储应用•参数设置•操作系统•吞吐量均•条带化设•SQL 语法•分区设计•索引设计•参数•补丁级别衡负载计•吞吐均衡•SQL 访问路径•在线交易重点!数据物理分布•回滚段大与批处理程序冲突小与参数•补丁级别••分布式处理不合理•数据库锁数据清洗与归档数据库性能优化过程-自顶向下效益代价•业务规则的优化设计•数据库体系结构的优•合理的索引策略•合理的访问路径•内存和CPU 的优化和调整化设计•数据库逻辑结构设计•数据库物理结构设计•优化SQL 语句的分析数•PL/SQL •磁盘I/O 和物理结构的设计和调整•系统资源竞争的监测数据库物结构设计•应用系统的设计充分使用Q •减少锁冲突和调整•操作系统平台的优化•设计和开发阶段的优化–80%以上设计开发上线20/80定律•应用设计开发--系统软件Bug硬件配置80%系统参数设置--其它20%•80%的性能问题是由20%的应用导致的•80%的性能问题可以架构和应用设计由20%的优化技术所解决应用开发基础知识•性能调优方法论•SQL语句执行过程•SQL语句分析工具:EXPLAIN ,AUTOTRACE ,SQL Trace ,TKPROF•基于规则优化器(RBO)和基于成本优化器(CBO)基于规则优化器)和基于成本优化器•索引及数据访问方式•统计信息的采集•Hint的使用•排序(Sort)和连接(Join)的优化•优化执行计划的固化•Bitmap等高级索引的使用•物化视图(汇总表)和临时表的使用•数据仓库有关技术的应用•… …上线之后的优化过程(自底向上)1.检查系统的利用率2.检查等待事件3.检查物理I/O4.确定范围–系统级, 模块级, 用户级?55.确定最消耗资源的SQL y STATSPACK/AWR 报告y Top Sessions in OEM 6.分析执行计划explain plan7.分析访问的对象(size/cardinality)8分析连接访问方式自底向上8.分析连接、访问方式… …9.找出相关问题10.确定解决方案11.测试解决方案12.生产环境实施解决方案13.分析结果技术方案——系统性能优化管理性能调优和管理方法重点!应用中间件或者第三方软件数据收集数据库分析性能调整硬件操作系统设立目标并提出建议第一类问题:索引策略问题•不合理的索引策略导致的全表扫描•什么叫全表扫描(Full table scan)什么叫全表扫描(F ll t bl)•全表扫描问题简单吗?•有的原因简单•有的原因很复杂•大量吞噬硬件尤其是I/O资源全表扫描语句非全表扫描语句响应速度00:06:10.0700:00:07.063917M09M内存消耗3,917M0.9MI/O消耗4,411M 2.5M•被迫在硬件上进行大量投入•降低系统的使用寿命•导致技术运用的复杂化•当前表,历史表?当前表历史表?•大业务表按年度分别设计表•历史数据迁移?•生产机、查询机?•导致其它相关联的系统问题全表扫描的原因1:缺乏索引•最简单因素:就是缺乏相关约束条件字段的索引。

•解决步骤:解决步骤•按消耗资源的高低定位有问题的SQL语句•在这些SQL语句的执行路径中,分析全表扫描的表在这些SQL语句的执行路径中分析全表扫描的表•在SQL语句中分析该表的约束条件字段•检查各个约束条件字段的索引是否存在•选择可选性最高的字段建立索引•评估效果全表扫描的原因2:索引被抑制•在字段前增加了函数to_char(DJ_SZ.JDRQ, YYYY.MM.DD) BETWEEN 2006.04.01AND to char(DJ SZ JDRQ‘YYYY MM DD)BETWEEN‘20060401’AND ‘2006.04.17’修改为:DJ_SZ.JDRQ BETWEEN to_date(‘2006.04.01’,’YYYY.MM.DD’) AND DJ SZ JDRQ BETWEEN t d t(20060401YYYY MM DD)AND to_date(‘2006.04.17’,’YYYY.MM.DD’)字段嵌表式中•字段嵌入表达式之中DJ_NSRZT_BG.YXQ_Z + 7 < sysdate修改为:DJ_NSRZT_BG.YXQ_Z < sysdate -7DJ NSRZT BG YXQ Z<d t7复合索引的使用建议•复合索引效率大大高于单字段索引—优先考虑复合索引•复合索引的前缀性(prefix)的风险•复合索引的设计建议如下:•分析最常见的条件定义操作•如果条件定义模式固定,例如同时涉及到月份、纳税人识别号、税务机关代码三个字段的条件,则可以考虑建立一个复合索引•在复合索引中,按可选性高低,或者条件定义的频度进行排序。