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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/416236.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

端智能在大众点评搜索重排序的应用实践

1 引言 随着大数据、人工智能等信息技术的快速发展,云计算已经无法满足特定场景对数据隐私、高实时性的要求。借鉴边缘计算的思想,在终端部署 AI 能力逐渐步入大众的视野,“端智能”的概念应运而生。相比于传统的云计算,在智能手…

身份验证遇到问题,登陆ChatGPT时提示:“we ran into an issue while authenticating you…”

oops! we ran into an issue while authenticating you, if this issue persists, please contact us through our help center at help.openai.com 说明:哎呀!我们在验证您的身份时遇到了一个问题,如果这个问题仍然存在&#xff…

Python创建线程

Python 提供了 _thread 和 threading 两个模块来支持多线程,其中 _thread 提供低级别的、原始的线程支持,以及一个简单的锁,正如它的名字所暗示的,一般编程不建议使用 thread 模块;而 threading 模块则提供了功能丰富的…

R语言学习 case2:人口金字塔图

step1&#xff1a;导入库 library(ggplot2) library(ggpol) library(dplyr)step2&#xff1a;读取数据 data <- readxl::read_xlsx("data_new.xlsx", sheet 1) datareadxl::read_xlsx() 是 readxl 包中的函数&#xff0c;用于读取Excel文件。 step3&#xff1…

查找局域网树莓派raspberry的mac地址和ip

依赖python库&#xff1a; pip install socket pip install scapy运行代码&#xff1a; import socket from scapy.layers.l2 import ARP, Ether, srpdef get_hostname(ip_address):try:return socket.gethostbyaddr(ip_address)[0]except socket.herror:# 未能解析主机名ret…

【物以类聚】给el-image预览多张图片增加提示文字,让每张图片有所分类

【物以类聚】给el-image预览多张图片增加提示文字&#xff0c;让每张图片有所分类 一、需求二、el-image三、实施步骤3.1 导包3.2 改造3.3 引入 三、效果 一、需求 点击地图上的一张图片&#xff0c;弹出所有相关的图片资源&#xff0c;图片资源上显示每个图片的所属类型。 二…

python自制贪吃蛇小游戏

下面是代码分享一下&#xff1a;空格键停止&#xff0c;回车键开始。 """贪吃蛇""" import random import sys import time import copy import pygame from pygame.locals import * from collections import deque SCREEN_WIDTH 800 # 屏…

【linux】查看Debian应用程序图标对应的可执行命令

在Debian系统中&#xff0c;应用程序图标通常与.desktop文件关联。您可以通过查看.desktop文件来找到对应的可执行命令。这些文件通常位于/usr/share/applications/或~/.local/share/applications/目录下。这里是如何查找的步骤&#xff1a; 1. 打开文件管理器或终端。 2. 导…

PTA 6-11 先序输出叶结点

本题要求按照先序遍历的顺序输出给定二叉树的叶结点。 函数接口定义&#xff1a; void PreorderPrintLeaves( BinTree BT ); 其中BinTree结构定义如下&#xff1a; typedef struct TNode *Position; typedef Position BinTree; struct TNode{ElementType Data;BinTree Left…

485.最大连续1的个数

前言 这两天突然发现力扣上还是有我能写出来的题的&#xff0c;虽说都是简单级别的&#xff08;以及一道中等的题&#xff09;&#xff0c;但是能写出来力扣真的太开心了&#xff0c;&#xff08;大佬把我这段话当个玩笑就行了&#xff09;&#xff0c;于是乎&#xff0c;我觉…

记一次 stackoverflowerror 线上排查过程

一.线上 stackOverFlowError xxx日,突然收到线上日志关键字频繁告警 classCastException.从字面上的报警来看,仅仅是类型转换异常,查看细则发现其实是 stackOverFlowError.很多同学面试的时候总会被问到有没有遇到过线上stackOverFlowError?有么有遇到后栈溢出?今天他来了,他…