当前位置: 首页 > news >正文

Oracle AWR报告的生成和解读

Oracle AWR报告的生成和解读

一、AWR报告概念及原理

Oracle10g以后,Oracle提供了一个性能检测的工具:AWR(Automatic Workload Repository 自动工作负载库)这个工具可以自动采集Oracle运行中的负载信息,并生成与性能相关的统计数据。我们可以根据这些统计数据来分析一些潜在的问题。

Oracle启动后,后台会有个进程去每小时采集一次系统的快照信息,信息采集来源为:V$active_Session_History视图。该视图可以展示最近活动会话的历史记录。默认将采集到的信息保存8天。

二、修改AWR采样频率和保存时间

在dba_hist_wr_control表中,保存默认的采样频率和保存时间,执行select * from dba_hist_wr_control,显示下图在这里插入图片描述

SNAP_INTERVAL快照间隔,单位是分钟,+00000 01:00:00.0表示+00000零天,01:00:00.0表示间隔一小时收集一次。

RETENTION 快照保留周期,单位是分钟,默认保留8天。

修改默认收集间隔为2小时,保留2周,执行如下代码:exec

dbms_workload_repository.modify_snapshot_settings(interval=>120,retention=>7*2*24*60);exec dbms_workload_repository.modify_snapshot_settings(interval=>120,retention=>20160);

三、生成AWR报告

在操作系统命令行中输入 sqlplus / as sysdba

进入sqlplus后执行 @?/rdbms/admin/awrrpt.sql

选择生成报告的格式,一般选择html格式。

在这里插入图片描述
选择天数
在这里插入图片描述

选择开始和结束的快照编号。
在这里插入图片描述

生成的报告存放在,进入sqlplus前的操作系统路径下。

四、解读AWR报告

AWR报告分为概要部分和详细部分,下面简单介绍一下概要部分。

在这里插入图片描述
上图部分是对数据库和操作系统基本情况的概述,包括快照时间等相关信息。其中,DB Time不包括Oracle后台进程消耗的时间。如果DB Time远远小于Elapsed时间,说明数据库比较空闲。
在这里插入图片描述
Per Second和Per Transaction这两部分是数据库资源负载的一个明细列表,分割成每秒钟的资源负载和每个事务的资源负载情况,具体含义如下:

redo size: 每秒/每个事务 产生的redo量 (单位字节)

logical reads: 每秒/每个事务 产生的逻辑读的块数

block changes: 每秒/每个事务 改变的数据块数

physical reads: 每秒/每个事务 产生的物理读

physical writes: 每秒/每个事务 产生的物理写的块数

user calls: 每秒/每个事务 用户的调用次数

parses: 每秒/每个事务 分析次数

hard parses: 每秒/每个事务 硬分析次数

sorts: 每秒/每个事务 排序次数

logons: 每秒/每个事务 登录数据库次数

executes: 每秒/每个事务 SQL的执行次数

rollbacks: 每秒/每个事物回滚次数

transactions: 每秒的事务数

在这里插入图片描述
Buffer Nowait:表示在内存获得数据的未等待比例。

buffer hit:表示进程从内存中找到数据块的比率,内存数据块命中率

Redo NoWait:表示在LOG缓冲区获得BUFFER的未等待比例。

library hit:表示共享池中SQL解析的命中率

Latch Hit:Latch是一种保护内存结构的锁,可以认为是SERVER进程获取访问内存数据结构的许可。

Parse CPU to ParseElapsd:解析总时间中消耗总CPU的时间百分比

Non-Parse CPU :SQL实际运行时间/(SQL实际运行时间+SQL解析时间),太低表示解析消耗时间过多。

Execute to Parse:是语句执行与分析的比例,如果要SQL重用率高,则这个比例会很高。该值越高表示一次解析后被重复执行的次数越多。

In-memory Sort:在内存中排序的比率,如果过低说明有大量的排序在临时表空间中进行。考虑调大PGA。

Soft Parse:软解析的百分比(softs/softs+hards),近似当作sql在共享区的命中率,太低则需要调整应用使用绑定变量。
在这里插入图片描述
Memory Usage %:对于一个已经运行一段时间的数据库来说,共享池内存使用率,应该稳定在75%-90%间,如果太小,说明Shared Pool有浪费,而如果高于90,说明共享池中有争用,内存不足。

SQL with executions>1:执行次数大于1的sql比率,如果此值太小,说明需要在应用中更多使用绑定变量,避免过多SQL解析。

Memory for SQL w/exec>1:执行次数大于1的SQL消耗内存的占比。
在这里插入图片描述
显示了系统中最严重的10个等待,按所占等待时间的比例倒序列示。当我们调优时,总希望观察到最显著的效果,因此应当从这里入手确定我们下一步做什么。

通常,在没有问题的数据库中,CPUtime总是列在第一个。

五、其他部分

在Oracle RAC环境中,AWR报告的概要部分和明细部分会包括RAC相关信息。除此以外,还有多种生成AWR报告的方法,简单介绍如下:

1.生成单实例 AWR 报告:

@$ORACLE_HOME/rdbms/admin/awrrpt.sql

2.生成 Oracle RAC AWR 报告:

@$ORACLE_HOME/rdbms/admin/awrgrpt.sql

3.生成 RAC 环境中特定数据库实例的 AWR 报告:

@$ORACLE_HOME/rdbms/admin/awrrpti.sql

4.生成 Oracle RAC 环境中多个数据库实例的 AWR 报告的方法:

@$ORACLE_HOME/rdbms/admin/awrgrpti.sql

5.生成 SQL 语句的 AWR 报告:

@$ORACLE_HOME/rdbms/admin/awrsqrpt.sql

6.生成特定数据库实例上某个 SQL 语句的 AWR 报告:

@$ORACLE_HOME/rdbms/admin/awrsqrpi.sql

7.生成单实例 AWR 时段对比报告

@$ORACLE_HOME/rdbms/admin/awrddrpt.sql

8.生成 Oracle RAC AWR 时段对比报告

@$ORACLE_HOME/rdbms/admin/awrgdrpt.sql

9.生成特定数据库实例的 AWR 时段对比报告

@$ORACLE_HOME/rdbms/admin/awrddrpi.sql

10.生成 Oracle RAC 环境下特定(多个)数据库实例的 AWR 时段对比报告

@$ORACLE_HOME/rdbms/admin/awrgdrpi.sql

相关文章:

  • 【全】OpenSSL创建生成CA证书、服务器、客户端证书及密钥说明
  • 蓝桥杯备赛 | 洛谷做题打卡day2
  • Protobuf小记(万字)
  • 基于FPGAWS2812B的贪吃蛇方案设计(含源码)
  • pod 控制器
  • 移动安全-certutil
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • 封装日期时间组件
  • 边缘计算的挑战和机遇(结合RDH-EI)
  • 12GoF之代理模式
  • Hutool sqlserver 数据库简单操作-Db
  • Linux 【C编程】IO进阶— 阻塞IO、非阻塞IO、 多路复用IO、 异步IO
  • 阶段七第二章 性能测试工具
  • word写标书的疑难杂症总结
  • leetcode82. 删除排序链表中的重复元素 II
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • create-react-app做的留言板
  • EventListener原理
  • HTML中设置input等文本框为不可操作
  • isset在php5.6-和php7.0+的一些差异
  • JAVA SE 6 GC调优笔记
  • javascript数组去重/查找/插入/删除
  • Mybatis初体验
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Vue2 SSR 的优化之旅
  • webgl (原生)基础入门指南【一】
  • 对象管理器(defineProperty)学习笔记
  • 关于for循环的简单归纳
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 使用API自动生成工具优化前端工作流
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 我从编程教室毕业
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (70min)字节暑假实习二面(已挂)
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (HAL库版)freeRTOS移植STMF103
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (定时器/计数器)中断系统(详解与使用)
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)树状数组
  • (转)四层和七层负载均衡的区别
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .FileZilla的使用和主动模式被动模式介绍
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET 设计模式—适配器模式(Adapter Pattern)