首页 > 数据库 >Oracle的awr的学习与整理

Oracle的awr的学习与整理

时间:2023-06-02 13:44:05浏览次数:42  
标签:Statistics exec sql awr sqt 整理 SQL Oracle id

Oracle的awr的学习与整理


背景

本来想上周末进行一下总结和汇总
因为周末两天进行了一次长时间的培训.所以没有成行.
只能在工作之余找时间进行总结. 
数据库部分自己一个不是很强.
其实也比较抗拒学习数据库相关的内容. 
哎..

创建awr的snapshot以及生成awr报告

有时候想精确获得部分时间节点的快照信息, 可以先创建一个快照点.
call DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
然后执行: 
SQL> @?/rdbms/admin/awrrpt.sql
用来生成awr的报告. 
生成文档的目录在执行 sqlplus 命令的当前目录
注意尽量使用html方式, 比较好看好分析一些. 
下载使用浏览器打开就可以了

awr的分析方法-菜鸟进阶级

Report Summary
第一部分是整体介绍, 会将系统信息 CPU内存服务名
以及这次AWR报告的时间, 系统信息描述出来. 
也会有很多一眼能够看得到的信息,比如TOsql 等. 

紧接着会有一个目录,基本上就是整个awr报告的骨干了: 

Report Summary
Wait Events Statistics
SQL Statistics
Instance Activity Statistics
IO Stats
Buffer Pool Statistics
Advisory Statistics
Wait Statistics
Undo Statistics
Latch Statistics
Segment Statistics
Dictionary Cache Statistics
Library Cache Statistics
Memory Statistics
Replication Statistics (GoldenGate, XStream)
Advanced Queuing
Resource Limit Statistics
Shared Server Statistics
Initialization Parameters
Active Session History (ASH) Report
ADDM Reports

详细分析如下:


Wait Events Statistics
里面会有整个系统的信息比如: 
Operating System Statistics - Detail
会把整个数据库的负载情况打印出来. 
如果系统里面有多种应用可以交叉对比,避免是被其他应用干扰.


SQL Statistics
SQL ordered by Elapsed Time
SQL ordered by CPU Time
SQL ordered by User I/O Wait Time
SQL ordered by Gets
SQL ordered by Reads
SQL ordered by Physical Reads (UnOptimized)
SQL ordered by Executions
SQL ordered by Parse Calls
SQL ordered by Sharable Memory
SQL ordered by Version Count
Complete List of SQL Text

这个里面基本是最精髓的部分了. 大部分SQL有没有问题可以从这里进行分析与查看. 
执行次数, IO信息. 表信息,以及具体的SQL内容都有涉及. 


IO Stats
IO相关的信息. 
如果有出现较大偏差,可以在这里进行着重查看.

Latch Statistics
在 Oracle 数据库中, `Latch` 统计信息可用于监控系统中用于同步访问共享资源的 `Latches` 的性能。
 `Latch` 统计信息可用于识别与等待事件相关的热点等待事件和性能瓶颈。
  DBA 可以使用 `v$latch` 或 `v$latch_children` 视图检索 Latch 信息。
  AWR报告里面也是存的一些核心共享资源争用的信息. 

Undo Statistics
如果有很多事务回退,后者是其他场景可以看这个内容.

Segment Statistics
数据库段相关的统计信息
主要是 逻辑读,物理读.物理写,表扫描,数据块变化信息, 行级别锁等待, buffer busy waits等内容.
这一块里面其实东西挺多的, 很值得分析. 尤其是数据事务慢, 可能更这一块关系很大. 

Memory Statistics
内存状态信息. 如果配置不合理, 这Ian可以看到. 

最后面一部分是ADDM的信息
ADDM(自适应数据库设计管理器)是 Oracle 数据库的一个强有力的性能优化工具。ADDM 可以自动分析数据库性能问题,并提供有关以下内容的建议:

- 识别性能瓶颈
- 分析高负载 SQL 语句
- 优化关键性能指标(如 I/O 瓶颈、内存使用、CPU 使用情况等)
- 提供对数据库和实例级别的优化建议等


方神提供的几个SQL查询执行次数

# 查询当前内存中的SQL执行次数信息. 第一个时间是秒钟, 第二个时间是微秒.
select exec_nums,elapsed_time_s,elap_per_exec,sql_id,sql_text
  from (select 
               sqt.exec exec_nums,
               trunc(nvl((sqt.elap / 1000000), to_number(null)),2) elapsed_time_s,
               trunc(decode(sqt.exec, 0,sqt.elap,(sqt.elap / sqt.exec)),2) elap_per_exec,
               sqt.sql_id,
               nvl(sqt.sql_text, to_clob(' ** SQL Text Not Available ** ')) sql_text
          from (select dhs.sql_id,
                       sum(dhs.ELAPSED_TIME) elap,
                       sum(dhs.EXECUTIONS) exec,
                       max(SQL_TEXT)  sql_text
                  from gv$sqlstats dhs
                 group by dhs.sql_id) sqt
         order by exec_nums desc,elapsed_time_s desc,elap_per_exec desc)
 where rownum <= 100;

# 查询AWR历史分析表中的数据信息. 
with a as (select DBID from v$database),
     c as (select min(snap_id) min_snap_id,max(snap_id) max_snap_id from dba_hist_snapshot where begin_interval_time >trunc(sysdate) - 12/24)
select exec_nums,elapsed_time_s,elap_per_exec,sql_id,sql_text
  from (select  sqt.exec exec_nums,
               sqt.sql_id,
               trunc(nvl((sqt.elap / 1000000), to_number(null)),2) elapsed_time_s,
               trunc(decode(sqt.exec, 0, sqt.elap,(sqt.elap / sqt.exec )),2) elap_per_exec,
               nvl(st.sql_text, to_clob(' ** SQL Text Not Available ** ')) sql_text
          from (select a.dbid,
                       dhs.sql_id,
                       sum(dhs.elapsed_time_delta) elap,
                       sum(dhs.executions_delta) exec
                  from dba_hist_sqlstat dhs,a,c
                 where dhs.dbid = a.dbid
                   and dhs.snap_id >= c.min_snap_id
                   and dhs.snap_id <= c.max_snap_id
                   and dhs.executions_delta >= 1
                 group by a.dbid,dhs.sql_id) sqt,
               dba_hist_sqltext st
         where st.sql_id(+) = sqt.sql_id
            and st.dbid(+) = sqt.dbid
         order by exec_nums desc , elapsed_time_s desc,elap_per_exec desc)
 where rownum <= 100;

标签:Statistics,exec,sql,awr,sqt,整理,SQL,Oracle,id
From: https://www.cnblogs.com/jinanxiaolaohu/p/17451559.html

相关文章

  • Oracle:OpenEuler 22.03 安装oracle19c
     #####################################################最小化安装openeuler-22.03-sp1,并更新到最新(写本文时:2023-06-01)关闭selinux关闭firewalld.service创建用户及用户组:oracle:oinstall创建推荐的目录:/u01,属主oracle:oinstallyuminstalllibnsllibnsl2-develliba......
  • 肖sir__影音视频讲解___项目整理
    一、参考链接直播产品:参考连接:https://www.axureshop.com/a/1401607.html 电商直播后台 二、项目简历:项目名称:xx直播app项目背景:我们是一个基于后台管理的一套电商直播后台系统,让线下的实体户家电卖家通过网络的直播平台来开拓市场,使客户在了解产品各项性能的同时来购......
  • proc c++连接oracle
    环境:oracle11g、vs20221、编写pc文件EXECSQLBEGINDECLARESECTION;structdatatable{intid;charname[30];}data;EXECSQLENDDECLARESECTION;ViewCode//#defineSQLCA_STORAGE_CLASSextern//增加该行报错EXECSQLINCLUDEconnect_oracle.h;......
  • Mysql && Oracle 纵向拼接,多行合并为一行
    纵向合并MysqlGROUP_CONCAT函数用法:GROUP_CONCAT(合并的字段名orderby排序字段SEPARATOR分割符)方式一:只合并GROUP_CONCAT(stu.NAME)方式二:带排序GROUP_CONCAT(stu.NAMEORDERBYs.scoreDESC)方式三:带分割符GROUP_CONCAT(stu.NAMEORDERBYs.scoreDESCSEPA......
  • JAVA面试题整理
    本文分为十九个模块,分别是:「Java基础、容器、多线程、反射、对象拷贝、JavaWeb、异常、网络、设计模式、Spring/SpringMVC、SpringBoot/SpringCloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM」,如下图所示:   共包含208道面试题,本文的......
  • 微信语音功能测试点__肖sir__测试点整理
    微信语音测试点=========================1、实效性:发送的语音消息是不是能够及时的收到,有没有延迟2、总时长:发送语音的最长时间是多少3、使用性:发送语音的按键是否灵敏4、其他:在发送语音的时候是否影响其他的功能5、耳机:佩戴耳机使用麦克是否能正常的发送微信语音6、弱网......
  • Git整理 git cherry-pick的使用
    gitcherry-pick可以理解为”挑拣”提交,它会获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上。当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用gitcherry-pick了。用法gitcherry-pi......
  • Oracle:OpenEuler 22.03 安装oracle11g
    见本人文章:“国产操作系统openEuler\UOSserver,以及openSUSE:都成功安装单实例的oracle11g\12c” ......
  • 肖 sir____ 传输平台项目讲解____整理
    简历项目参考: 项目名称:传输通(app)项目描述:传输通是一款用于公司内部以传输文件为主的软件,支持在线聊天、视频通话、点对点断电续传文件、共享文件等多种功能的一款通信软件。我主要负责文件传输的模块。测试工具:svn、禅道、Fiddler、monkey、Solopi、JMeter、QNET、Postman......
  • 【Oracle】Show the change history of tbs' size
     注意:脚本都从dba_hist_tbspc_space_usage系统视图获取数据,但是这个系统视图中保存的数据的时间是依赖AWR采样数据保留期限的。所以你从这个系统视图可能查找不出很早之前的表空间数据使用情况,如果需要历史的表空间使用数据,可能需要定期采集数据并存储到起来。 Innonmult......