ORACLE数据库分析型应用的调优策略.docVIP

  • 2
  • 0
  • 约2.54万字
  • 约 34页
  • 2020-04-09 发布于广东
  • 举报
1.调优的目标 1.1分析型应用的特点 分析型应用、批量处理应用、数据仓库应用说的都是相似的一类 应用,它们与联机类应用(OLTP)相比,有如下的区别: OLAP/批量系统/数据仓库 OLTP 少量用户 很多用户 人事务 小事务 每个事务调用大量SQL 每个事务调用少量SQL 总的时间是关键 响应时间是关键 集屮批量访问数据 随机选择性访问数据 更新操作较少,插入操作较多 更新与插入操作都很频繁 加工处理只要最终结果,不关心中 间过程 要准确保留每一步操作状态 1.2分析型应用的调优目标 分析型应用系统的调优口标就是在有限的资源环境下,在要求的 时间窗口内,能够正确、稳定、及时的完成批量处理任务和业务目标。 一个经过优化的分析型应用系统应该具有以下特征: 能够充分调动利用系统资源,使系统资源的利用率稳定在较 高的水平。如果系统资源利用率始终较低,可能是处理逻辑的某处有 瓶颈,需要找出结症,采取必要的手段,如改单次循环操作为批量操 作、改串行操作为并行操作,甚至调整处理逻辑,以提高系统利用率。 系统的最大等待时间应该在I/O操作上,且各种资源的使用 率比较均衡。如果最大等待时间消耗在其它资源上,而I/O相对空闲, 一般需要调整应用,加大对I/O资源的利用。 3)每次完成任务的时间窗口比较稳定,且能随着数据量的增加 呈线性变化,而不是报错。 2?调优的层次和方向 2.1系统级调优 即对系统资源一级的调优,可市管理DBA或厂商支持完成,通 过分析应用运行中的资源使用状况,找出ORACLE资源配置方面的 问题,一般是通过调整系统和数据库参数达到优化,如加大OS和 ORACLE每次读取的数据块参数等;也能够通过分析ORACLE的等 待事件等各种统计信息,找出问题SQL,提出SQL优化建议。系统 级调优偶尔能达到较好的效果,但经过初次诊断优化之后,如果仍有 性能问题,很难再进一步优化。这一级调优是纯技术的,也是最表层 的,完全不需要理解业务。 2.2语句级调优 当经过最初的系统级诊断找出问题SQL之后,可以在SQL级对 应用进行调优。这主要也是利用SQL和PLSQL编程技术,对个别语 句进行优化改造,并不动及应用的整体处理逻辑,因此也属于技术级 别的调优,不一定要求熟悉业务,通常由管理DBA来完成。这种调 优对个别语句的优化效果通常较大,但不一定能够突破应用设计上的 瓶颈(如果有),因此如果应用设计逻辑有问题,这一级调优也很难 达到最终目标。 2.3应用设计级调化 一个应用系统经过分析、设计、实现,达到业务目标,最后的系 统性能相差巨大,最有可能就是应用程序设计的问题。这一层的调优 是对应用处理逻辑进行重新优化设计,需要完全业务需求和加工逻 辑。如果系统性能问题的确出现在设计层,经过这一层优化之后,一 般能达到戏剧性的性能提高,但难度和限制条件也较大。 2.4数据库设计级调优 一般数据库设计人员都比较熟悉关系型数据库,纯性能问题一般 不大,但数据库设计(包括逻辑模型设计和物理存储设计等)如果出 自非常业余的人士,性能问题也可能岀现这一层。这一层的调优在技 术是可能的,但限制条件和涉及面最大,一?般难以实现。另外在创建 数据库时,要尤其注意DB_BLOCK_SIZE这个参数,默认值是8K, 对分析型应用应该设为16K或32K,这个参数是数据库的最基础参 数之一,在数据库创建之后不能再更改。 2.5通用的关键几招 数据库逻辑模型设计在使用关系结构的基础上以清晰易懂、访问 流畅为关键。物理模型设计以结构简洁、含义明确、存取快速、高效 利用资源为目标。本招对现有系统调优意义不大。 减少使用游标循环,将游标屮的处理逻辑提取到SQL语句层通 过使用多子查询关联等技术批量完成处理;如果用一条SQL语句完 成处理比较困难,可以考虑分成几步,使用临时表存放过程数据,最 后生成目标数据,再清空临时表。这种方法能够充分利用和发挥资源 优势,通过增大数据吞吐量而提高速度。如果资源有限,满足不了一 个大SQL语句的运行,有时还需要将它拆成几个较小的语句分步完 成。 如果处理逻辑复杂而必须使用游标,尽量将循环屮对表的访问转 为在游标定义层通过表连接进行访问,以极大程序的减少对表的访问 次数。同理,要尽量设法将循环中调用的函数(特别是函数中乂访问 表)提取到游标定义层完成其功能。 在数据量巨大的分析型数据库中,UPDATE速度难以难受,要尽 量设法UPDATE语句转为使用INSERT语句完成其处理目的。 结合数据分区设计并行处理,充分利用资源获得效率。 使用NOLOGGING操作,减少写H志文件的压力。 使用BULK批操作(如批量FETCH INSERT等)替换单条记 录操作。 调优一个长时间没反应的存储过程,先单独分析调试其屮的 SQL,找出瓶颈,重点优化。同理,对

文档评论(0)

1亿VIP精品文档

相关文档