`
足至迹留
  • 浏览: 495603 次
  • 性别: Icon_minigender_1
  • 来自: OnePiece
社区版块
存档分类
最新评论

<让oracle跑得更快-7> AWR性能报告

awr 
阅读更多
AWR是oracle 10g下提供的一种性能收集和分析工具,可以看做10g以前statspack工具的一个升级版本,它能够提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统整个运行情况。

读懂AWR报告并不是简单地通过理解里面的性能指标的含义就能掌握的。需要你相当了解oracle的内部机制,方方面面的内部机制,对oracle理解得越深,看AWR报告后对数据库性能的判断也会越准确。
数据库的性能分析,大致上可以分为两个层面,会话级和系统级(实例级)
1. 会话级
如果我们能够确定某个会话存在性能问题,那么我们就可以针对这个确定的会话做分析。最常见的分析方式是对这个会话做一个sql_trace或者10046事件,通过分析trace文件来定位问题的所在。

2. 实例级
当我们无法确定哪个会话性能有问题(或者说每个会话性能都有问题)的时候,就需要从实例级别来分析问题的所在,这很有可能是实例整体性能下降导致的。为了获得一个实例的整体性能数据,我们可以查询一些动态视图,比如V$sysstat,V$system_events为了查询实例里的整体性能情况,可能要查询很多方面的信息,比如SQL,比如IO,比如等待,需要查询非常多的视图。针对这种情况,在oracle 10g之前,statspack工具包是做实例级性能分析的首选工具,他能定期收集数据库的性能信息,然后生成报告;在10g里,oracle提供了一个新的性能采集和分析的工具AWR(Automatic Workload Repository),它比statspack收集的信息更多,使用起来更方便。AWR由运行在oracle的后台进程自动,定期收集数据库的性能数据,并将数据保存起来,每一个小时,AWR都会生成一次性能数据快照,为DBA提供某个时刻数据库性能分析的数据信息。
AWR的性能数据是oracle自动采集和保存的,采集周期是1小时,不需要人为干预,我们要做的就是使用这些信息,生成一个AWR性能分析报告。

7.1 生成AWR性能报告
(1)首先进入生成AWR报告使用脚本的路径下,它的位置是:
$ORACLE_HOME/rdbms/admin
我们使用了环境变量$ORACLE_HOME,在每个安装了oracle实例软件的机器上,在oracle默认用户下,都应该设置了这个变量。
(2)然后我们执行以下命令,其中调用的脚本awrrpt.sql就是生成AWR报告用到的脚本:


这一部分显示数据库的ID、数据库名称和当前实例名称。


这里AWR要求我们指定报告的显示方式,默认是HTML方式,也可以直接输出为文本方式。建议使用HTML方式,因为在报告中有一些页面内部有链接,使用HTML可以更容易定位信息,如果不输入,默认值是HTML.


如果运行的系统是一个RAC结构,这一部分会列出所有的实例。


AWR询问要显示最近几天的快照信息,我们输入1表示显示最近一天的快照。


上面列出了最近一天的快照信息,每一个小时AWR生成一个性能快照,我们要指定需要分析性能的时间段,指定一个开始快照号和结束的快照号。


我们指定了开始快照号17218和截止快照号17219,它对应的起止时间是从早上9:00到10:00的一小时的时间间隔。


指定生成的AWR报告的路径和文件名,这里设定的路径是:
/tmp/myawr.html
完成上面的交互式信息输入后,oracle将会为我们在指定的位置生成AWR报告。
另外,oracle还提供了一个脚本awrrpti.sql,使用这个脚本可以直接生成其数据库或者其他实例上的AWR报告。这个脚本对于RAC结构的数据库很有用处,我们直接连接一个实例就可以生成所有实例的AWR性能报告。

7.2 AWR性能报告分析
AWR报告文件里包含了非常多的性能指标,如果我们像读小说一样从头读到尾,几乎可以说是毫无收获,肯定会“读了后面忘了前面”。
用户要根据自己的实际情况来从报告中获取自己需要的信息,比如对于一个OLTP系统
(1) Library Hit
(2) Buffer Hit

这两项就应该非常关注,因为OLTP系统是一个sql执行非常密集的系统,共享池命中率低就说明有很多sql不能被重用,需要重新解析,这会大大降低系统的性能和sql的执行效率。Buffer hit在OLTP系统中也非常重要。OLTP系统要求sql的执行效率非常高,当sql需要的数据块都能保留在内存中,那么sql执行效率自然要比从磁盘读取数据块要高得多,当这个值越接近于100时,说明内存中sql访问的数据块越多,也就是从磁盘读取的数据块越少。

反之,如果你的系统是一个典型的OLAP系统或数据仓库系统,那么完全可以忽略这两个性能指标,即使他们非常低。因为OLAP系统数据库中通常是运行着一些报表分析的sql,这些sql都是一些聚类查询的sql,这些sql执行时间都非常长,而且每个sql查询的数据块可能都不相同,所以数据块很难长时间地缓存在内存当中;另外,OLAP系统本身执行的sql重复率就不高,不需要要求这些sql重用,甚至在OLAP系统中,绑定变量会导致负面作用。实际上,要把一个AWR报告讲清楚的确是一件非常困难的事,因为每个系统都不同,绝不能一概而论,那些所谓的某些指标必须要达到多少,数据库性能才能优化的说法是没有根据的。
具体每一部分的解读可以参考《让oracle跑得更快 oracle 10g 性能分析与优化思路》第13章。
【完】
  • 大小: 62.8 KB
  • 大小: 87 KB
  • 大小: 86.3 KB
  • 大小: 185.4 KB
  • 大小: 73.9 KB
  • 大小: 113.1 KB
  • 大小: 144.9 KB
0
0
分享到:
评论

相关推荐

    让Oracle跑得更快—Oracle 10g性能分析与优化思路ch03.pdf

    5. **监控与分析**:利用Oracle提供的工具(如AWR报告)监控系统性能,并针对发现的问题采取相应的优化措施。 综上所述,理解和掌握Latch的相关知识对于Oracle DBA来说至关重要。通过合理的系统设计和持续的性能...

    让Oracle跑得更快(扫描版).pdf 高清下载

    标题和描述均指向一个主题:“让Oracle跑得更快”,这显然是一份专注于提升Oracle数据库性能的资料。Oracle作为全球领先的关系型数据库管理系统之一,其性能优化对于提高数据处理速度、增强系统响应能力和确保业务...

    让Oracle跑得更快 Oracle 10g性能分析与优化思路.part2.rar

    13.1.1 生成awr性能报告 337 13.1.2 awr性能报告分析 342 13.2 statspack性能报告 386 13.2.1 statspack的安装 386 13.2.2 statspack性能采集 391 13.3 ash性能报告 394 13.3.1 生成ash性能报告 395 13.3.2 ash性能...

    让Oracle跑得更快.pdf-Oracle 10g 性能分析与优化思路

    《让Oracle跑得更快》是针对Oracle 10g数据库性能分析与优化的一份深入指南。Oracle数据库系统作为全球广泛使用的数据库管理系统之一,其性能优化对于企业数据处理效率至关重要。Oracle 10g版本在性能方面引入了许多...

    让oracle跑得更快

    由于文件中的部分内容是重复的链接,我们将忽略这些重复内容,并专注于标题和描述中提到的“让oracle跑得更快”以及“如果你深入学习oracle,如果你想学习优化oracle,下它吧!”。以下是对这些知识点的详细说明: ...

    让Oracle跑得更快.pdf

    鉴于提供的文件信息中没有包含可分析的具体内容,我无法针对"让Oracle跑得更快.pdf"这一电子书提供详细的知识点。然而,基于标题中提到的“Oracle”和“跑得更快”,我可以提供一些普遍性的知识点和建议,这些建议...

    让Oracle跑得更快1:Oracle 10g性能分析与优化思路(1)(带详细目录)

    根据提供的标题、描述以及部分上下文内容,我们可以推断出这篇文章主要关注的是Oracle 10g数据库系统的性能分析与优化方法。尽管实际内容部分只包含了重复的博客链接,但基于标题和描述,我们可以构建出一系列关于...

    让Oracle跑得更快Oracle 10g性能分析与优化思路 谭怀远 扫描版

    国内第一本真正意义上从工作经验出发,以作者的心得体会全面论述...书中涉及很多新的性能话题,比如执行计划,bind peeking,并行执行,10046及10053事件,AWR报告等,基本上涵盖了所有Oracle数据库性能方面的知识。

    让Oracle跑得更快 Oracle 10g性能分析与优化思路.part1.rar

    13.1.1 生成awr性能报告 337 13.1.2 awr性能报告分析 342 13.2 statspack性能报告 386 13.2.1 statspack的安装 386 13.2.2 statspack性能采集 391 13.3 ash性能报告 394 13.3.1 生成ash性能报告 395 13.3.2 ash性能...

    让oracle跑的更快1

    《让Oracle跑得更快》是一本专注于Oracle数据库性能优化的专业书籍。通过阅读这本书,你可以深入理解如何提升Oracle数据库的运行效率,从而优化整个系统的性能。Oracle数据库是全球广泛使用的大型企业级数据库系统,...

    让Oracle跑得更快 2 基于海量数据的数据库设计与优化

    《让Oracle跑得更快 2 基于海量数据的数据库设计与优化》是一本深入探讨如何在大数据环境下提升Oracle数据库性能的专业书籍。该书详细阐述了针对大规模数据的数据库设计策略以及优化技术,旨在帮助读者理解并解决...

    让Oracle跑的更快1、2集合

    "让Oracle跑得更快1、2集合"的主题显然聚焦于如何提升Oracle数据库的运行效率,这涉及到多个方面的知识,包括但不限于SQL优化、索引策略、数据库设计、存储结构、并行处理以及资源管理等。 首先,SQL优化是提高...

    让Oracle跑得更快基于海量数据的数据库设计与优化.谭怀远.第2版

    《让Oracle跑得更快:基于海量数据的数据库设计与优化》是谭怀远先生的著作,专注于探讨如何在处理大规模数据时提升Oracle数据库的性能。这本书的第二版深入讲解了Oracle数据库在面对海量数据时的设计策略和优化技巧...

    让Oracle跑得更快基于海量数据的数据库设计与优化%5D.谭怀远.第2版

    《让Oracle跑得更快:基于海量数据的数据库设计与优化》是谭怀远先生的著作,专注于讲解如何在处理大规模数据时提升Oracle数据库的性能。这本书对于深入理解Oracle数据库的内部机制、设计高效的数据库架构以及实施...

    让Oracle跑得更快.Oracle.10g性能分析与优化思路

    为了详细地介绍《让Oracle跑得更快.Oracle.10g性能分析与优化思路》一书中的知识点,我们需要从Oracle数据库性能优化的角度出发,探讨Oracle 10g版本中常见的性能问题及其解决方案。虽然提供的信息有限,但我们可以...

    让oracle跑的更快

    ### 让Oracle跑得更快:Oracle调优知识详解 #### 一、Oracle调优基础知识 在探讨具体的调优技巧之前,我们首先需要了解一些Oracle数据库的基础知识,这将有助于我们更好地理解后续的内容。 ##### 1.1 Oracle架构...

    让Oracle跑得更快.Oracle.10g性能分析与优化思路].(谭怀远).扫描版.pdf

    根据给定的文件信息,文件标题为“让Oracle跑得更快.Oracle.10g性能分析与优化思路”,同时附有作者“谭怀远”的名字和一个表示扫描版电子书的文件类型“.pdf”。文件描述与标题一致,强调了主题为Oracle 10g数据库...

Global site tag (gtag.js) - Google Analytics