`

Oracle性能调整与优化一

阅读更多

Oracle性能调整是一个范围比较广且有点复杂的主题,普通DBA面对的最大的问题是从哪里开始以及该做些什么。你知道的所有信息可能是有人(一个用户)报告了一个关于应用程序或查询性能下降的问题,当你面对这样的问题时该从何下手呢?

Oracle的调整方法

对那些已经取得了Oracle 8i性能调整认证考试的人而言,有一个试验区域实验Oracle的调整方法,当Oracle 9i发布时Oracle强调了这个方法有所改动,这个方法从8i到9i/10g发生一些变化,两个方法都不完全一样,它们都有各自的优势和缺点,在Oracle 8i中,由下面的步骤组成:

1、调整业务规则

2、调整数据设计

3、调整应用程序设计

4、调整数据库逻辑结构

5、调整数据库操作

6、调整访问路径

7、调整内存分配

8、调整I/O和物理结构

9、调整资源连接

10、调整基础平台

Oracle 9i的基本原则性方法,原则即优先级顺序:

优先级描述

第一 清楚地定义问题,然后指定一个调整目标

第二 检查主机系统和搜集Oracle统计信息

第三 将识别的问题与Oracle 9i提供的通用数据库性能方法(版本1)/数据库性能计划(版本2)进行对比

第四 使用第二步搜集的统计信息获得一个在系统上可能发生了什么的大概设想

第五 标识所做的改动,然后实施那些改动

第六 确定是否符合第一步中确定的目标,如何符合就停止调整,如果还不符合就重复第五和第六步直到符

合调整目标

Oracle 10g R2性能调整指导认同所有Oracle性能改善方法的处理过程,步骤已经扩展了,但是总体来说还是保留了一些相同的地方。

1、执行下面的初始化标准检查:

a.从用户那里获取真实的反馈,确定性能设计范围和性能目标,以及将来的性能目标,这个过程对未来容量的规划很关键。

b.在性能好和差的时候,都要获取全套操作系统,数据库和从系统获取应用程序统计信息,如果这些不可用,就获取任何有用的信息,丢失统计信息与丢失犯罪证据类似:使得侦探工作更困难并且更浪费时间。

c.对所有涉及用户性能的机器进行操作系统健全检查,通过对操作系统的健全检查,你可以查看被完全利用的硬件和操作系统资源,列出所有过度使用的资源作为后面分析的症状,此外,检查所有硬件错误或进行诊断。

2、检查前十个Oracle常见错误,并确定这些是否可能成为真正的问题,把它们列出来作为后面分析的症状,因为它们代表了大多数可能的问题,ADDM自动检查并报告前十个问题中的九个。查看第6章“自动性能诊断”【http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14211/diagnsis.htm#g41683】和“Oracle系统中发现的前十个错误”【http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14211/technique.htm#i11221】

3、建立一个在系统上发生了什么的概念模型,使用症状作为提示理解是什么导致了性能问题,查看“一个性能概念模型的简单决策过程”【http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14211/technique.htm#i11199】

4、计划一系列补救动作和预先考虑系统的工作情况,然后按顺序应用将使应用程序最大受益,ADDM产生的每个建议都包括了预期的受益分析,不幸的是,系统停机时可能会阻止这样一个严格的调查方法,如果同时应用了多个修改,那么要尝试确保它们是被隔离的,以便可以独立证明每个修改的影响。

5、确认所做的修改是否达到了预期的作用,并了解用户对性能的感受是否有所改善,另外,寻找更多的瓶颈,继续改进概念模型直到你对应用程序的理解更准确。

6、重复后面的三步直到达到性能目标或由于其他约束而变得不可能。

变化是问题的一部分

从一个自顶向下的构造方法到一个以原则为基础的“使它停止伤害”的方法是问题的一部分,搜集统计数据显得很重要因为你如何知道你已经对问题做了改进(或使问题更糟)?对其他方法,你仍然要保留两个最初的问题:我要寻找什么以及我如何使它变得更好?如果结构化方法使你头疼,那原则性方法只会添加混乱。

能够帮助初学者(不承诺:我远远还不够专家的资格)评估(配置、终端和调整)的调整项目清单:

·调整缓冲区高速缓存(Buffer Cache)

·调整重做日志缓冲区(Redo Log Buffer)

·调整共享池内存(Shared Pool Memory)

·优化数据存储器

·优化表空间

·调整Undo段

·检测锁争用

·SQL调整

这些调整措施使得Oracle RDBMS和实例从上到下都更漂亮了,本文剩下的部分将集中在SQL调整或更精密地预防慢速SQL被执行,这些不是同一件事吗?大概是吧,但是在开发方面一个通用的方法是编写执行得够好够块的语句,每条语句不用是最佳的,但是某些思想必须体现在代码中,你没有时间优化成百甚至上千的SQL语句,但同时你可以遵循一些指导方针,以避免常见的错误和不良的编码习惯。

有效避免问题查询的17条提示

这17条提示来源于Hassan Afyouni编写的“Oracle9i性能调整:优化数据库生产率”,这些提示为两个结果打下了坚固的基础:使SQL语句执行效率更佳和确定在这一点上无事可做(如:你已经为SQL语句做了你力所能及的努力,该继续另一个调整项目了)。

这17条提示就是:

1、避免笛卡尔结果

2、避免在大表上全表扫描

3、使用SQL标准和规范减少解析

4、缺少包含在where子句中列的索引

5、避免连接太多的表

6、监视V$session_longops检测长时间运行的操作

7、使用适当的提示

8、使用shared_cursor参数

9、使用基于规则的优化器(如果它比基于成本的优化器要更好的话)

10、避免不必要的排序

11、监视索引变暗(定期删除,必要时重建)

12、小心使用混合索引(不要重复列)

13、监视查询统计情况

14、为表和索引使用不同的表空间(作为一个通用规则,这虽然有点守旧,但主要目的是为了减少I/O争用)

15、在适当的时候使用分区表(和本地索引)(分区是一个额外的成本特性)

16、在where子句中使用直接量(使用绑定变量)

17、保存统计数据时常更新

这是一个相当全面、彻底、准确的列表,步骤9参考了基于规则的优化器的使用,可能引起一个Oracle已经认定作为一个将来的项目特性的依赖或相关性被反对,最后你不得不使用CBO来解决这个问题,因此现在你可能还要开始忘掉CBO,步骤14应该按照减少I/O争用的目标做一些改动而不只停留在它当前描述的为表和索引分配单独的表空间。

小结

本系列的下一篇文章,我们将查看一些这些提示中包含的步骤,例如:在许多网站上给出的关于如何改善SQL语句性能的建议通常都包括“使用绑定变量”,我相信许多人都有这样一个问题:“我如何正确地做好这件事?”实际上它相当简单,因为有很多有关如何使用这些提示的详细信息。

分享到:
评论

相关推荐

    Oracle Database 性能调整与优化 系列书.rar

    "Oracle Database 11gR2性能调整与优化"与"Oracle Database 12cR2性能调整与优化"这两本书分别针对Oracle的不同版本,提供了深入的性能优化策略和技巧。 Oracle Database 11gR2性能调整主要涉及以下几个方面: 1. ...

    oracle数据库性能优化.pdf

    除了上述两点,Oracle性能优化还包括索引的建立与管理,分区策略的运用,回滚段的优化,以及查询执行计划的控制等。索引能加速数据检索,但过度的索引会增加写操作的开销,需权衡利弊。分区策略可将大表分解,提高...

    Oracle性能优化绝版好书:高级OWI与ORACLE性能调整

    《Oracle性能优化绝版好书:高级OWI与ORACLE性能调整》这本书深入探讨了Oracle数据库性能优化的关键技术和策略,特别关注了Oracle Wait Interface (OWI)和性能调整的实践应用。OWI是Oracle数据库中用于监控和诊断...

    Oracle Database 11gR2性能调整与优化

    Oracle Database 11gR2性能调整与优化

    高级owi与oracle性能调整.pdf

    根据提供的信息,我们可以推断出这本名为“高级owi与oracle性能调整”的书籍主要讨论了高级owi技术以及Oracle数据库性能优化的相关内容。由于提供的部分页面信息仅包含联系方式,并没有具体的章节内容,因此以下将...

    Oracle性能调优.pdf

    Oracle性能调优 Oracle性能调优 Oracle性能调优 Oracle性能调优 Oracle性能调优 Oracle性能调优 Oracle性能调优

    Oracle 12C OCM 性能优化考试教材.zip

    Oracle 12C OCM(Oracle Certified Master)是Oracle公司为高级数据库管理员提供的一项专业认证,专注于Oracle数据库的性能优化。这个压缩包包含了与Oracle 12C OCM性能优化考试相关的教材,帮助考生深入理解和掌握...

    Oracle Database 11g R2性能调整与优化

    在性能调整与优化方面,Oracle 11g R2提供了许多工具和技术,以帮助管理员和开发人员实现最佳的系统性能。 首先,Oracle的自动工作负载 repository (AWR) 是一个强大的性能监控工具。AWR收集关于数据库性能的数据,...

    《Oracle Database 11gR2性能调整与优化》PDF版本下载.txt

    《Oracle Database 11gR2性能调整与优化》PDF版本下载

    Oracle的性能调试与优化

    总之,《Oracle的性能调试与优化》是一本全面而深入探讨数据库性能调优的经典之作。无论是对于正在从事数据库开发和管理的专业人士,还是对数据库性能优化感兴趣的初学者而言,本书都极具参考价值。通过学习本书,...

    oracle性能优化与调整

    总的来说,Oracle性能优化是一个涉及多方面的综合工程,需要数据库管理员具备深厚的理论知识和实践经验,通过对硬件、软件、数据结构、SQL语句、内存分配和I/O等各环节的精细化调整,才能确保数据库在高负载下依然...

    Oracle性能优化与故障诊断案例分享

    最后,需要强调的是,Oracle数据库性能优化与故障诊断并不是一劳永逸的工作,而是一个持续的过程。数据库环境可能会随着业务需求的变化而发生变化,新的性能问题和故障也可能会随之出现。因此,DBA们必须持续关注和...

    oracle9i 性能调整与优化

    就是那本大名鼎鼎的《oracle9i性能调整与优化》,Richard.J.Niemiec著,清华大学出出版。一共4个包

    Oracle的性能调整与优化分析.pdf

    Oracle性能调整与优化分析 Oracle数据库是大型的关系型数据库,目前广泛应用于电信、金融、政府、交通、能源等各大部门和企业,成为基于大数据访问的重要数据库平台。然而,随着Oracle数据库应用的普及,数据库...

    oracle 性能调整 sql性能优化大全

    Oracle数据库性能调整与SQL性能优化是数据库管理员和开发人员日常工作中不可或缺的部分。Oracle数据库系统以其高效、稳定和可扩展性闻名,但同时也需要通过精心的调整和优化来确保最佳性能。以下是一些关键的知识点...

    高级owi与oracle性能调整

    根据提供的标题“高级owi与oracle性能调整”及描述“高级owi与oracle性能调整”,我们可以推断出这份文档主要探讨的是如何通过高级优化方法提升Oracle数据库的性能。虽然提供的具体内容并没有实质性的技术信息,但...

Global site tag (gtag.js) - Google Analytics