Oracle 性能优化之AWR、ASH和ADDM(含报告生成和参数解读)

这篇具有很好参考价值的文章主要介绍了Oracle 性能优化之AWR、ASH和ADDM(含报告生成和参数解读)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🏆 文章目标:本篇介绍Oracle性能优化相关的工具,如AWR、ASH和ADDM。
🍀 Oracle 性能优化之AWR、ASH和ADDM
✅ 创作者:Jay…
🎉 个人主页:Jay的个人主页
🍁 展望:若本篇讲解内容帮助到您,请帮忙点个赞吧,再点点您的小手关注下,您的支持是我继续写作的最大动力,谢谢🙏 作为回馈,对我博客内容感兴趣的小伙伴可以私聊我,我们一起学习 Oracle 和 PostgreSQL的知识,大家一起共同进步。

介绍

AWR、ASH 和 ADDM 是 Oracle 数据库性能诊断和优化的重要工具,它们可以帮助您达到以下目标:

  1. 性能监控:这些工具提供了关于数据库性能的详细信息,例如等待事件、SQL 查询的执行统计、系统和会话的活动等。你可以使用这些信息来监控数据库的性能,例如检查是否有性能瓶颈,或者追踪性能的变化趋势。
  2. 性能诊断:如果数据库的性能出现问题,例如响应时间变慢或 CPU 利用率过高,你可以使用这些工具来诊断问题的原因。例如,你可以查看等待事件和 SQL 查询的统计信息,找出消耗资源最多的操作。
  3. 性能优化:这些工具不仅提供了诊断性能问题的信息,还提供了优化建议。例如,ADDM 可以自动分析 AWR 数据,识别出性能问题,并提供优化建议。你可以根据这些建议来优化数据库的配置或 SQL 查询。
  4. 问题排查:在出现问题时,例如数据库挂起、事务失败等,可以使用这些工具来排查问题的原因。例如,ASH 提供了活动会话的历史信息,你可以查看在问题发生时会话的状态和活动。

AWR

使用方式

假设你需要分析 Oracle 数据库在过去一个小时内的性能状况。你可以生成一个 AWR 报告来查看这段时间内的数据库统计信息和性能数据。

1、首先,获取需要的快照 ID。执行以下 SQL 查询:

SELECT SNAP_ID, BEGIN_INTERVAL_TIME, END_INTERVAL_TIME
FROM DBA_HIST_SNAPSHOT
WHERE BEGIN_INTERVAL_TIME >= SYSTIMESTAMP - INTERVAL '1' HOUR
ORDER BY SNAP_ID;

这将列出过去一个小时内的快照 ID。

2、然后,运行以下 SQL 脚本生成 AWR 报告:

@$ORACLE_HOME/rdbms/admin/awrrpt.sql

按照提示,输入报告类型(HTML 或文本)、开始和结束快照 ID。报告将生成在指定的文件中。

3、打开生成的报告文件,分析性能数据,找出可能的性能瓶颈。

分析方式

在阅读 AWR 报告时,需要关注几个重要的部分:

  1. 等待事件(Load Profile):这部分列出了最耗费数据库时间的事件,可以帮助我们找出性能瓶颈。例如,如果 “db file sequential read” 事件的等待时间过长,可能是磁盘 I/O 速度慢或 SQL 查询需要优化。
  2. SQL统计信息(SQL Statistics):这部分提供了 SQL 查询的统计数据,例如执行次数最多的 SQL、消耗最多 CPU 的 SQL 等。你可以找出需要优化的 SQL 查询。
  3. 最大等待时间 (Top Timed Events):这部分列出了消耗最多时间的事件,通常是性能瓶颈的主要来源。例如,如果 “db file sequential read” 事件的等待时间过长,可能是因为磁盘 I/O 速度慢或 SQL 查询需要优化。

例如,假设在报告中看到 “db file sequential read” 事件的等待时间过长,可以根据等待事件的文件 ID 和块 ID,运行以下 SQL 查询找出相关的 SQL 查询:

SELECT SQL_ID, SQL_TEXT
FROM V$SQL
WHERE CURRENT_FILE# = :file_id AND CURRENT_BLOCK# = :block_id;

ASH

使用方式

假设你需要诊断最近 15 分钟内出现的性能瓶颈。你可以查询 ASH 数据来获取这段时间内活动会话的详细信息。

1、运行以下 SQL 查询来查看最近 15 分钟内的活动会话数据:

SELECT SAMPLE_TIME, SESSION_ID, SQL_ID, EVENT, WAIT_TIME, TIME_WAITED
FROM V$ACTIVE_SESSION_HISTORY
WHERE SAMPLE_TIME >= SYSTIMESTAMP - INTERVAL '15' MINUTE;

这将列出最近 15 分钟内的活动会话采样数据。

2、分析查询结果,找出可能的性能瓶颈。例如,可以通过 SQL_ID 来查找执行缓慢的 SQL 查询。

分析方式

在分析 ASH 数据时,也应该关注等待事件和 SQL 查询:

  1. 等待事件:如果某个等待事件的数量过多或等待时间过长,可能是性能瓶颈的来源。
  2. SQL查询:通过 SQL_ID,你可以找出执行缓慢的 SQL 查询,然后进一步分析查询的执行计划,找出需要优化的地方。

例如,假设你在 ASH 数据中发现一个 “enq: TX - row lock contention” 等待事件,这表示有会话在等待行级锁。你可以运行以下 SQL 查询找出相关的会话和 SQL 查询:

SELECT SESSION_ID, SQL_ID
FROM V$ACTIVE_SESSION_HISTORY
WHERE EVENT = 'enq: TX - row lock contention';

然后,你可以进一步分析这些 SQL 查询,查找是否有可以优化的地方,例如减少锁的持有时间。

ADDM

使用方式

假设你需要分析过去一天的数据库性能,并获取优化建议。你可以运行 ADDM 分析来查看诊断结果。

  1. 首先,获取需要的快照 ID。执行以下 SQL 查询:
SELECT SNAP_ID, BEGIN_INTERVAL_TIME, END_INTERVAL_TIME
FROM DBA_HIST_SNAPSHOT
WHERE BEGIN_INTERVAL_TIME >= SYSTIMESTAMP - INTERVAL '1' DAY
ORDER BY SNAP_ID;

这将列出过去一天内的快照 ID。

  1. 然后,运行以下 SQL 脚本执行 ADDM 分析:
@$ORACLE_HOME/rdbms/admin/addmrpt.sql

按照提示,输入开始和结束快照 ID。报告将生成在指定的文件中。

  1. 打开生成的报告文件,查看 ADDM 的诊断结果和优化建议,如增加内存、优化 SQL 查询等。根据建议采取相应的优化措施。

通过这些案例,你可以了解如何使用 AWR、ASH 和 ADDM 工具来诊断 Oracle 数据库的性能问题,并查看相应的报告以采取适当的优化措施。

分析方式

ADDM 报告是最容易理解的,因为它提供了自动诊断的结果和优化建议。你只需要关注两个部分:

  1. 问题:这部分列出了 ADDM 分析的结果,包括诊断的问题和影响的程度。你应该优先处理影响最大的问题。
  2. 建议:这部分提供了针对每个问题的优化建议,例如增加内存、优化 SQL 查询等。你应该根据这些建议来调整数据库的配置或优化 SQL 查询。

例如,假设 ADDM 报告中建议增加 SGA 的大小,你可以按照以下步骤修改数据库的参数:

  1. 登录到 SQL*Plus 作为 SYSDBA。
  2. 运行以下命令查看当前的 SGA 大小:
SHOW PARAMETER sga_target;
  1. 运行以下命令增加 SGA 的大小:
ALTER SYSTEM SET sga_target = new_value SCOPE=BOTH;

以上就是分析 AWR、ASH 和 ADDM 报告的方法和步骤。我希望这些信息对您有所帮助。

总结

总的来说,AWR、ASH 和 ADDM 可以帮助您更好地理解和管理数据库的性能,从而提高应用的响应时间,提升用户的体验,也可以在出现问题时快速定位并解决问题。文章来源地址https://www.toymoban.com/news/detail-450108.html

到了这里,关于Oracle 性能优化之AWR、ASH和ADDM(含报告生成和参数解读)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【性能测试】性能数据采集工具nmon安装使用及报告参数含义详解

    目录 nmon nmon下载 解压安装 启动 数据采集配置 生成图形结果 nmon报告中的参数含义  资料获取方法 nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,它能在系统运行过程中实时地捕捉系统资源的使用情况,并且能输出结果到文件中,然后通过nmon_analyzer工具产

    2024年02月13日
    浏览(39)
  • Oracle 数据库表性能优化

    最近在一次工作过程中,遇到了oralce 表性能慢的问题。一个历史表,一个月将近1000多万的数据量,想查询这个表的数据,只使用了一个简单的语句,却一个多小时都查不出来。于是决定对Oracle 的这张表的性能进行一下优化。本人不是一个专门搞数据库这块的dba,所以只能粗

    2024年02月03日
    浏览(42)
  • 大模型推理性能优化之KV Cache解读

    做大模型性能优化的一定对KV Cache不陌生,那么我们对这个技术了解到什么程度呢?请尝试回答如下问题: KV Cache节省了Self-Attention层中哪部分的计算? KV Cache对MLP层的计算量有影响吗? KV Cache对block间的数据传输量有影响吗?本文打算剖析该技术并给出上面问题的答案。 大模

    2024年02月16日
    浏览(151)
  • oracle19c容器数据库rman备份特性-----性能优化(三)

    目录 冗余备份片 1.备份的时候指定 2.rman配置中设定 归档备份(将备份集保留) 二级备份(将备份文件保留) 1.备份闪回恢复区的恢复文件 2.备份所有恢复文件 recovery catalog database 1.創建recovery catalog 2.创建VPC  data recovery advisor 备份 如果一个数据文件很大,可以设置多通道并

    2024年02月01日
    浏览(41)
  • MySQL性能优化之配置参数

    MySQL性能优化之配置参数,参考如下 show variables like ‘%max_connection%’; show status like ‘%Max_used_connections%’; Max_used_connections/max_connection =85% show variables like ‘%back_log%’; back_log 默认为50 建议修改为 128~512 show variables like ‘%timeout%’; 修改interactive_timeout wait_timeout 2项的值,默认为

    2024年02月07日
    浏览(35)
  • 使用免费负载生成器swingbench对oracle数据库进行压力测试(测试Oracle的功能或评估性能)

    Swingbench 是一个免费负载生成器(和基准测试),旨在对 Oracle 数据库 进行压力测试。目前最新版本 Swingbench 2.6。 SwingBench 由负载生成器,协调器和集群概述组成。该软件可以生成负载 并绘制交易/响应时间图表。 Swingbench 可用于演示和测试技术,例如实际应用程序集群,在线

    2024年02月10日
    浏览(44)
  • 优化索引粒度参数提升ClickHouse查询性能

    当对高基数列进行过滤查询时,总是希望尽可能跳过更多的行。否则需要处理更多数据、需要更多资源。ClickHouse缺省在MergeTree表读取8192行数据块,但我们可以在创建表时调整该 index_granularity 参数。本文通过示例说明如何调整该参数优化查询性能。 下面示例,创建表并插入

    2024年02月11日
    浏览(32)
  • 大规模参数服务器上的神经网络训练优化——Facebook 研究团队进展报告

    作者:禅与计算机程序设计艺术 随着深度学习在图像、自然语言处理等领域的广泛应用,其模型的规模也越来越大,训练所需要的时间也越来越长。为了加快训练速度,参数服务器(Parameter Server)模式被提出,将神经网络训练过程中的参数分配到多个计算机上,并通过统一

    2024年02月06日
    浏览(31)
  • 常见JVM参数配置和GC性能优化

    常见的JVM参数配置 垃圾回收统计信息 -XX:+PrintGC     打印GC简要信息 -XX:+PrintGCDetails打印GC的详细信息 -XX:+PrintGCTimeStamps打印CG发生的时间戳 -Xloggc:log/gc.log 指定GC log的位置,以文件输出 -XX:+PrintHeapAtGC 每一次GC前和GC后,都打印堆信息。 堆设置 -Xms:初始堆大,最小堆 -Xmx:最大

    2024年02月16日
    浏览(30)
  • 图解Kafka Producer常用性能优化配置参数

    bootstrap.servers:Kafka broker服务器地址列表, , 分开,可不必写全,Kafka内部有自动感知Kafka broker的机制 client.dns.lookup:客户端寻找bootstrap地址的方式,支持两种方式: resolve_canonical_bootstrap_servers_only:依据bootstrap.servers提供的主机名(hostname),根据主机上的名称服务返回其IP地址

    2024年02月03日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包