Oracle的awr的学习与整理

oracle,awr,学习,整理 · 浏览次数 : 62

小编点评

**Oracle AWR 总结与整理背景** **1. 简介** * AWR(分析窗口记录)是 Oracle 数据库的性能监控工具,用于收集和分析系统性能指标以识别并优化性能瓶颈。 * 总结本文将介绍 AWR 的学习与整理背景。 **2. 数据库部分** * AWR 可以收集的指标包括: * CPU 使用率 * 内存使用率 * I/O 使用率 * 数据块访问时间 * SQL 语句执行次数 * 数据库连接数 * 数据表和索引状况 **3. AWR 报告** * 报告包含以下部分: * 系统信息 * 性能瓶颈分析 * 性能指标分析 * 数据库活动分析 **4. 性能瓶颈分析** * SQL 统计信息,如执行次数、IO 信息、表信息等,可以用于分析性能瓶颈。 **5. 性能指标分析** * CPU 使用率、内存使用率等指标可以用于分析 CPU 和内存性能。 * I/O 使用率、数据块访问时间等指标可以用于分析 I/O性能。 **6. 数据库活动分析** * SQL 语句执行次数、数据块访问时间等指标可以用于分析数据库活动。 **7. 数据概览** * AWR 报告提供了数据概览,包括系统信息、性能瓶颈分析和性能指标分析。 **8. 结论** * AWR 是 Oracle 数据库性能监控工具,可以帮助优化数据库性能。

正文

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;

与Oracle的awr的学习与整理相似的内容:

Oracle的awr的学习与整理

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

Oracle AWR学习之二-利用ChatGPT编写一键获取AWR报告的脚本

# Oracle AWR学习之二-ChatGPT提升效率之n ## 背景 ``` 之前生成awr报告比较麻烦, 想着能够一键生成. 再辅以部分shell或者是python处理就可以进行细致的分析. 这一块其实还是比较简单的, 在ChatGPT加持下的确能够极大的提高自己的工作效率. 但是怀疑国内的学

[转帖]Oracle如何重启mmon/mmnl进程(AWR自动采集)

https://www.cnblogs.com/jyzhao/p/10119854.html 学习一下 环境:Oracle 11.2.0.4 RAC现象:sysaux空间满导致无法正常生成快照,清理空间后,手工生成快照可以成功,但是观察自动生成快照依然是不成功。之前了解到awr对应的相关后台进程是m

[转帖]人大金仓- KWR 报告初体验

【本文正在参与炫"库"行动-人大金仓有奖征文】 开发者请集结丨炫“库”行动——2021人大金仓征文大赛悬赏万元等你来! 最近一直在研究 Oracle 的 AWR 报告,觉得它功能很强大,尤其是 DB Time 模型和等待事件能够让性问题的分析变得十分方便,再也不需要依赖大量的运维脚本去分析和定位问题

[转帖]Oracle AWR报告提取方法

https://www.cnblogs.com/jyzhao/p/4030022.html 本文旨在用来指导项目人员自行提取Oracle数据库的AWR报告. 1.当前连接实例的AWR报告提取:@?/rdbms/admin/awrrpt 2.RAC的其他实例AWR报告提取:@?/rdbms/admin

验证ADG的坏块检测和自动修复

环境: Oracle 19c ADG(主库:单实例;备库:RAC) 1.主库新建测试文件 2.主库创建测试表 3.查询表对应数据文件信息 4.模拟数据文件物理坏块 5.查询对应测试表 6.进一步查询日志信息 7.确认当前参数设置 1.主库新建测试文件 主库在AWR的PDB中做测试,为了不影响其他测试

[转帖]openGauss的WDR报告解读

文章目录 1.执行以下SQL命令,查询已经生成的快照信息。2.生成WDR报告。3.手工创建快照信息4.WDR涉及的数据表5.WDR报告解读 在Oralce数据库中,遇到性能问题,我们通常会查看有无对应时间段的快照,生成awr报告并进一步分析(AWR是Automatic Workload Reposi

23ai中的True Cache到底能做啥?

最近,Oracle的产品管理总监在Oracle数据库内幕中介绍了True Cache。 原文链接如下: https://blogs.oracle.com/database/post/introducing-oracle-true-cache 由于这篇文章比较火爆,我们国内已经有很多的数据库爱好者完整

Oracle 查询用户下表名,表列数,表行数,表大小的SQL

最近想分析下数据库的信息, 然后写了这个SQL. 比较lowB一些. 因为Oracle的 deferred_segment_creation 参数的影响. 很多表如果是0行,那么是不会创建extents 存储信息. 所以很多取出来的表大小信息为空. 这也就导致了查询结果表大小为空的情况. 为了能够准

Oracle process/session/cursor/tx/tm的简单学习

Oracle process/session/cursor/tx/tm的简单学习 Oracle的部署模式 Oracle安装时有专用模式和共享模式的区别 共享模式(Shared mode): 在共享模式下,会话可以同时读取数据库的数据,多个会话可以并发地进行读取操作。 这意味着多个会话可以共享相同的数