3. io:如果需要的数据在内存中没有,则需要到磁盘中去取,就会用到物理io了,还有表之间的连接数据太多,以及排序等操作内存放不下的时候,也需要用到临时表空间,也就用到物理io了

这里有一点说明的是,虽然oracle占用了8G的内存,但pga一般只占8G的20%,对于专用服务器模式,每次执行sql语句,表数据的运算等操作,都在pga中进行的,也就是说只能用1.6G左右的内存,如果多个用户都执行

多表关联,而且表数据又多,再加上关联不当的话,内存就成为瓶颈了,所有优化sql很重要的一点就是,减少逻辑读和物理读

如何生成awr报告:* 1:登陆对应的数据库服务器

2:找到oracle磁盘空间(d:oracle\product\10.2.0\db_1\RDBMS\Admin)

3:执行cmd-cd d:回车

4: cd d:oracle\product\10.2.0\db_1\RDBMS\Admin 回车

5:sqlplus 用户名/密码@服务连接名(例:sqlplus carmot_esz_1/carmot@igrp)

6:执行@awrrpt.sql 回车

第一步输入类型: html

第二步输入天数: 天数自定义(如1,代表当天,如果2,代表今天和昨天。。。)

第三步输入开始值与结束值:(你可以看到上面列出的数据,snap值)

这个值输入开始,与结束

第四步输入导出表的名称:名称自定义 回车

第五步,由程序自动导完。

第六:到d:oracle\product\10.2.0\db_1\RDBMS\Admin 目录下。找到刚才生成的文件。 XXXX.LST文件

具体分析过程:* 在分析awr报告之前,首先要确定我们的系统是属于oltp,还是olap(数据库在安装的时候,选择的时候,会有一个选项,是选择oltp,还是olap)

对于不同的系统,性能指标的侧重点是不一样的,比如,library hit和buffer hit,在olap系统中几乎可以忽略这俩个性能指标,而在oltp系统中,这俩个指标就非常关键了

* 首先要看俩个时间

Elapsed: 240.00 (mins) 表明采样时间是240分钟,任何数据都要通过这个时间来衡量,离开了这个采样时间,任何数据都毫无疑义

DB Time: 92,537.95 (mins) 表明用户操作花费的时候,包括cpu时间喝等待时间,也许有人会觉得奇怪,为什么在采样的240分钟过程中,用户操作时间竟然有92537分钟呢,远远超过了

采样时间,原因是awr报告是一个数据的集合,比如在一分钟之内,一个用户等待了30秒,那么10个用户就等待了300秒,对于cpu的话,一个cpu处理了30秒,16个cpu就是4800秒,这些时间都是以累积的方式记录在awr报告中的。

再看sessions,可以看出连接数非常多

* 为了对数据库有个整体的认识,先看下面的性能指标

1. Buffer Nowait 说明在从内存取数据的时候,没有经历等待的比例,期望值是100%

2. Buffer Hit 说明从内存取数据的时候,buffer的命中率的比例,期望值是100%,但100%并不代表性能就好,因为这只是一个比例而已,举个例子,执行一条 sql语句,# 执行计划是需要取10000个数据块,结果内存中还真有这10000个数据块,那么比例是100%,表面上看是性能最高的,还有一个执行计划是需要500 个数据块,内存中有250个,另外250个需要在物理磁盘中取,

这种情况下,buffer hit是50%,结果呢,第二个执行计划性能才是最高的,所以说100%并不代表性能最好

3. Library Hit 说明sql在Shared Pool的命中率,期望值是100%

4. Execute to Parse 说明解析sql和执行sql之间的比例,越高越好,说明一次解析,到处执行,如果parse多,execute少的话,还会出现负数,因为计算公式是100*(1-parse/execute)

5. Parse CPU to Parse Elapsd 说明在解析sql语句过程中,cpu占整个的解析时间比例,,期望值是100%,说明没有产生等待,需要说明的是,即使有硬解析,只要cpu没有出现性能问题,也是可以容忍的,比较硬解析也有它的好处的

6. Redo NoWait 说明在产生日志的时候,没有产生等待,期望值是100%

7. Soft Parse 说明软解析的比例,期望值是100%,有一点要说明的是,不要单方面的追求软解析的高比例,而去绑定变量,要看性能的瓶颈在哪里

8. Latch Hit 说明latch的命中率,期望值是100%,latch类似锁,是一种内存锁,但只会产生等待,不会产生阻塞,和lock还是有区别的,latch是在并发的情况下产生的

9. Non-Parse CPU 说明非解析cpu的比例,越高越好,用100减去这个比例,可以看出解析sql所花费的cpu,100-99.30=0.7,说明花费在解析sql上的cpu很少

* 结合Time Model Statistics

可以看出,在整个sql执行时间(sql execute elapsed time)时间为5552019秒中,解析时间(parse time elapsed)用了36秒,硬解析时间(hard parse elapsed time)用了34秒虽然硬解析时间占了整个解析时间的绝大部分,但解析时间是花的很少的,所以可以判断出,sql的解析没有成为性能的瓶颈,进一步推测,sql在获取数据的过程中遇到了瓶 颈

* 继续看Top 5 Timed Events,从这里可以看出等待时间在前五位的是什么事件,基本上就可以判断出性能瓶颈在什么地方

1. buffer busy waits 说明在获取数据的过程中,频繁的产生等待事件,很有可能产生了热点块,也就是说,很多会话都去读取同样的数据块,这一事件等待了5627394次,总共等待了5322924秒,平均等待时间为946毫秒,而且频率也是最高的,有95.9%,等待类别是并发 这里有一个概念:oracle操作的最小单位是块,当一个会话要修改这个块中的一条记录,会读取整个块,如果另一个会话要修改的数据也正好在这个块中,虽然这俩个 2. 会话修改的记录不一样,也会产生等待direct path write temp和direct path read temp 说明用到了临时表空间,那我们再看一下Tablespace IO Stats 各项指标都是非常高的,再根据上面的In-memory Sort是100%,没有产生磁盘排序,也就在排序的时候没有用到临时表空间,进一步推测,多个session,每个session执行的sql语句中多表关联,产生了很多中间数据,pga内存中放不下, 用到了临时表空间,也有可能是用到了lob字段,在用lob字段的时候,也会用到临时表 * 继续看SQL Statistics 根据buffer busy waits等待次数,时间,频率都是最高的,我们重点看逻辑读,物理读,和执行时间最长的sql,把排在前几位的拿出来优化 优化的原则为降低物理读,逻辑读,sql语句中的子操作执行次数尽量少,在看oracle估计出来的执行计划是看不出子操作的执行次数的,要看运行时的执行计划 * 有兴趣的话还可以看一下Segment Statistics 列出了用到的索引和表的使用情况,从这里也能看出索引和表的使用频率 * 也可以看一下Load Profile 里面列出了每秒,每个事务所产生的日志,逻辑读和物理读等指标

oracle10g生成awr报告,oracle 10g awr报告生成步骤及awr报告分析相关推荐

  1. oracle10g精简版配置,oracle 10g 精简版安装步骤分享

    今天遇到个软件要求安装oracle client端,于是考虑装精简版本的,就从http://www.oracle.com/technology/software/tech/oci/instantcli ...

  2. oracle10g密码不对,谈谈Oracle 10g 密码文件

    谈谈Oracle 10g 密码文件 Oracle 10g实例搜索密码文件时默认是搜索$ORACLE_HOME/dbs目录下面的orapw$ORACLE_SID文件,当orapw$ORACLE_SID文 ...

  3. oracle10数据库链接失败,oracle 10g Enterprise Manager 无法连接到数据库实例分析

    1 问题描述 客户端通过IE 浏览器登陆oracle 10g em console时不能显示登陆界面,页面显示"Enterprise Manager 无法连接到数据库实例.下面列出组件状态& ...

  4. oracle 生成 sql语句,Oracle使用SQL语句生成日历的实现方法

    Oracle使用SQL语句可以实现日历的功能,下面就为您详细介绍Oracle使用SQL语句生成日历的实现方法,希望对您能有所帮助. 1 要构造某年某月的日历,必须先知道这个月的开始时间,结束时间及天数 ...

  5. oracle+生成+sql语句,Oracle使用SQL语句生成日历的实现方法

    Oracle使用SQL语句可以实现日历的功能,下面就为您详细介绍Oracle使用SQL语句生成日历的实现方法,希望对您能有所帮助. 1 要构造某年某月的日历,必须先知道这个月的开始时间,结束时间及天数 ...

  6. oracle 10 awr,其它 - Oracle 10g AWR Report 分析_数据库技术_Linux公社-Linux系统门户网站...

    Awr report 分析-其它 OLTP系统中必须关注的两个性能指标是LibraryHit与Buffer Hit.Library Hit指共享池中sql解析的命中率; Buffer Hit指内存数据 ...

  7. oracle10g的rat模拟,Oracle 10g Logminer 研究及测试

    LogMiner提供了一个处理重做日志文件并将其内容翻译成代表对数据库的逻辑操作的SQL语句的过程.LogMiner运行在Oracle版本8.1或者更高版本中. 一,如何使用Logminer: 先要安 ...

  8. oracle10g索引不生效,oracle 10g分区表索引失效测试

    一.测试环境 SQL> select * from v$version; BANNER ----------------------------------------------------- ...

  9. oracle10g sys密码忘记,Oracle 10g忘记system,sys密码的解决办法。

    C:\Documents and Settings\Administrator>sqlplus /nolog SQL*Plus: Release 10.1.0.2.0 - Production ...

最新文章

  1. 原创:去繁存简,回归本源:微信小程序公开课信息分析《一》
  2. kafka中controller的作用_Kafka 常见问题汇总
  3. hdu5443(2015长春网络赛G题)
  4. 寻找获取Bean 的入口
  5. JavaOne演讲者选择了您不应该错过的10个会话
  6. leetcode1052. 爱生气的书店老板(滑动窗口)
  7. 2015/8/29 Python基础(3):数值
  8. 预培训个人项目(地铁线路规划)
  9. 只需三种手段,将传统的网站的性能提高 24%!
  10. 【渝粤教育】国家开放大学2018年秋季 2312T旅行社经营管理 参考试题
  11. python snap7怎么用_Python-snap7与S7-1500的通讯
  12. 模型预测控制的缺点_模型预测控制简要内容
  13. 计量经济学知识点及案例整理
  14. 一个非教条式的TDD例子
  15. 对选股宝实时信息进行爬虫
  16. K近邻模型、KNN算法1-构建预测模型
  17. python中sha1 md5等用法
  18. 2018沈阳集训day1
  19. 关于任意群是否都是可以由其元素生成,及群中心与元素正规化子关系的分析(2009及1997群论真题)
  20. React + Ts 自定义 日历插件

热门文章

  1. mysql proxy无法连接_客户端无法通过4040端口连接到mysql proxy
  2. python多线程知识点(只能说是知道有多线程一个词而已,摸摸头顶,还有毛)
  3. Ajax网络超时和和网络异常
  4. 一个软件公司需要多少前端_内幕!软件外包公司开发一个软件需要多少钱?
  5. hnu 暑期实训之回文串
  6. hnu 暑期实训之公交系统
  7. 802. 区间和(离散化)
  8. Java 1.2.1 读取输入
  9. 支持向量机SVM的学习笔记
  10. 【超简单已实现】CSDN实现点击跳转到指定段落