首页 游戏 软件 资讯 排行榜 专题
首页
数据库
如何通过AWR分析业务低谷期_利用夜间快照评估批处理作业耗时

如何通过AWR分析业务低谷期_利用夜间快照评估批处理作业耗时

热心网友
72
转载
2026-04-25

夜间批处理作业在AWR报告中消失?先检查DBA_HIST_ACTIVE_SESS_HISTORY的采样覆盖

许多Oracle DBA都曾面临这样的困扰:明明在凌晨时段,批处理任务正在密集执行,但事后查看AWR性能报告时,相关的会话活动和SQL语句却“神秘失踪”。这通常并非数据丢失,而是由AWR的采样机制与作业执行窗口不匹配导致的。AWR默认每小时(60分钟)采集一次系统快照,而大量批处理作业恰恰选择在凌晨2点至4点这样的维护窗口内运行。如果某个作业执行时长较短(例如仅8分钟),且其运行时段恰好落在两次快照采集的时间点之间,那么它在AWR报告中就很可能无法被捕捉到。这本质上是采样频率未能覆盖作业执行节奏的问题。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

当遇到批处理作业在AWR中“隐身”的情况,建议按照以下步骤进行排查:

  • 首先,查询DBA_HIST_SNAPSHOT历史快照视图,确认你所关注的时间段内是否存在有效的快照记录。这是定位问题的基本前提。
    SELECT snap_id, begin_interval_time, end_interval_time
    FROM DBA_HIST_SNAPSHOT 
    WHERE begin_interval_time >= DATE '2024-04-10' 
    AND end_interval_time <= DATE '2024-04-11'
    ORDER BY snap_id;
  • 如果确认快照间隔过大,可以考虑临时提高AWR快照的采集频率(此操作需要DBA权限),例如将间隔调整为15分钟:EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval => 15);。请注意,此调整仅对后续快照生效,并且会增加AWR资料库的存储开销。
  • 更通用且高效的方法是直接查询DBA_HIST_ACTIVE_SESS_HISTORY(ASH)历史活跃会话数据。ASH的采样粒度更细,默认每秒捕获一次活跃会话信息(通常保留30分钟,可配置延长),是追溯和分析短期批处理作业活动的理想工具。

如何从AWR报告中快速找出耗时最长的批处理SQL?

切勿盲目地在AWR报告数十页的“SQL统计信息”表格中进行大海捞针。该部分通常按SQL的总执行时间、逻辑读或执行次数进行排序。然而,真正导致业务延迟的“罪魁祸首”,往往是那些执行次数极少(可能仅一次)、但单次运行就耗时几十分钟的批处理SQL。这类SQL在按总量排序的榜单中,很难进入前十名。

要精准定位此类高单次耗时的SQL,需要转换分析思路:

  • 生成AWR报告时,在“报告级别”选择TypicalALL,确保报告包含Top SQL with Top Events(关联顶级等待事件的SQL)这一关键章节。
  • 重点关注“每次执行耗时(秒)”这一列,而非仅仅查看“总耗时(秒)”。对于单次执行时间超过10秒的SQL,都应展开其详细内容进行审查。
  • 你也可以直接查询DBA_HIST_SQLSTAT历史SQL统计视图进行手动筛选和排序,这种方式更为灵活:
    SELECT sql_id, elapsed_time_delta/decode(executions_delta,0,1,executions_delta)/1000000 elap_per_exec
    FROM DBA_HIST_SQLSTAT 
    WHERE snap_id BETWEEN 12345 AND 12346 
    AND executions_delta > 0 
    ORDER BY elap_per_exec DESC 
    FETCH FIRST 5 ROWS ONLY;
  • 这里有一个关键细节需要警惕:如果executions_delta为0,意味着该SQL在快照区间内未执行完成或被取消。此时,elapsed_time_delta记录的是累计的等待与执行时间,不能简单地用它除以执行次数来计算平均单次耗时。

为什么在DBA_HIST_SQL_PLAN中找不到批处理SQL的执行计划?

这是另一个常见的误区。AWR并不会保存所有SQL语句的完整执行计划历史,它通常只存储那些被内部阈值判定为“高负载”的语句,或者在生成AWR报告时被显式捕获到的计划。许多批处理作业为了提高灵活性,会采用绑定变量结合动态SQL拼接的方式,导致SQL_ID频繁变化。在数据库看来,这些并非需要长期监控的“稳定对象”,因此其执行计划很可能不会被收录到历史视图中。

若需查找此类SQL的执行计划,可以尝试以下方法:

  • 最直接的方法是在作业仍在运行时,立即查询V$SQL_PLAN动态性能视图(这是实时视图,非历史视图),它反映了当前库缓存中最真实的执行计划:
    SELECT * FROM V$SQL_PLAN WHERE sql_id = 'abc123xyz';
  • 如果作业已经结束,且未开启FORCE_MATCHING_SIGNATURE功能,可以尝试通过DBA_HIST_SQLTEXT历史SQL文本视图,使用SQL文本片段进行模糊匹配,先反推出可能的sql_id,再进一步查找其计划。
  • 从长远来看,一个治本的方案是在批处理脚本的关键SQL语句前添加/*+ MONITOR */优化器提示。此提示会强制Oracle将该SQL的执行详情记录到V$SQL_MONITOR实时监控视图中,并且有很大概率被AWR捕获留存。
  • 最后请注意:DBA_HIST_SQL_PLAN历史视图中的plan_hash_value(计划哈希值),可能与V$SQL_PLAN实时视图中的不完全一致。历史视图中的计划可能经过截断或归一化处理。

评估批处理性能,仅看AWR中的DB Time和DB CPU就足够了吗?

显然不够,尤其是对于夜间批处理这类复杂场景。DB Time(数据库时间)数值高,可能仅仅是因为存在大量的I/O等待(例如db file sequential read顺序读)或锁等待(例如enq: TX - row lock contention行锁竞争)。而这些等待事件在AWR报告的汇总页面中,很可能被归并到“Other”(其他)或“Background”(后台)分类里,仅凭一眼扫过难以发现真正的性能瓶颈。

因此,进行性能评估时必须进行更深入的分析:

  • 必须仔细研读AWR报告的“等待事件”部分,特别是Top 5 Timed Foreground Events(前5个定时前台等待事件)表格。排序依据应重点关注% DB Time(占数据库时间的百分比),而非绝对的等待时间毫秒数。
  • 如果在此处观察到大量的direct path read(直接路径读)等待事件,通常意味着批处理正在进行全表扫描或并行数据加载。此时需要检查相关表是否缺少合适的索引,或者表的统计信息是否已经过期。
  • 另一个重要的对比分析是:计算两个相邻快照之间DB Time的差值,然后对比同一时间段内实际的Elapsed Time(即真实流逝的墙钟时间)。如果DB Time远小于Elapsed Time,则表明有大量时间消耗在了数据库之外,例如网络传输、应用层逻辑处理或调用外部API——这些是AWR监控的盲区。
  • 最后,切勿忽略资源管理器的影响。夜间批处理作业常常受到Resource Manager(资源管理器)策略的限制。建议检查DBA_RSRC_CONSUMER_GROUP_PRIVS以及当前会话的resource_consumer_group值,确认作业没有因为资源配额不足而在队列中等待。

归根结底,批处理作业的性能问题从来不是单一因素造成的。它是SQL语句效率、执行计划稳定性、系统等待事件、资源配额限制以及外部依赖共同作用下的一个“复合体”。AWR快照如同切片观察,如果切片的位置不准,或者切片过厚,就难以看清全貌。理解AWR的采样机制与局限性,并综合运用ASH、SQL监控等多维度工具,才是有效诊断和优化批处理性能的关键所在。

来源:https://www.php.cn/faq/2306511.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

台铃电车如何锁车不耗电?
电脑教程
台铃电车如何锁车不耗电?

台铃电动车锁车,真的不耗电吗? 关于电动车锁车后是否还在“偷偷”用电,很多用户心里都有个问号。答案很明确:台铃电动车的锁车状态本身,几乎不产生额外电量消耗。其核心在于一套精心设计的电子防盗系统,在锁止后,整车的主供电电路会被立刻切断,只留下防盗模块、钥匙信号接收器等核心安防单元,以极低的功耗维持待命

热心网友
04.25
老年助听器怎么安装后能用吗?
电脑教程
老年助听器怎么安装后能用吗?

老年助听器怎么安装后能用吗? 开门见山地说,给长辈选配助听器,可千万别把它当成“即插即用”的普通电子产品。这本质上是一套严谨的医疗康复流程,核心在于“专业验配”与“科学适应”。没有这两步,再好的设备也可能沦为抽屉里的闲置品。 真正的效能发挥,始于一份精准的听力“地图”——通过纯音测听、声导抗等医学检

热心网友
04.25
高考前冲刺口号
礼仪与书信
高考前冲刺口号

高考前冲刺口号 话说回来,每年到了这个时节,教室里、走廊上、甚至学生的课桌一角,总能看到一些凝聚着决心与期盼的句子。它们不仅仅是口号,更像是一股无声的力量,在最后关头为学子们注入信念。下面这份汇集了多年备考智慧的清单,或许能为你带来一些启发。 信念与心态篇 1 Everything is poss

热心网友
04.25
高中励志口号
礼仪与书信
高中励志口号

班风口号:胜不骄,败不馁,有志不在年高,但求力争上游 “胜不骄,败不馁”这六个字,分量可不轻。它源自《商君书·战法》,原话是“王者之兵,胜而不骄,败而不怨。”这提醒我们,成功时别让骄傲蒙了眼,失败时也别被沮丧拖垮了脚。保持清醒与韧性,才是长久之道。 紧接着的“有志不在年高”,出自《封神演义》。这话说

热心网友
04.25
下学期中班孩子评语
礼仪与书信
下学期中班孩子评语

下学期中班孩子评语1 1、 这孩子聪明又活泼,课堂上总能看到他高高举起的小手,思维活跃得很,发言特别踊跃。做数学题又快又准,小脑袋转得飞快,语言表达能力也强,还经常主动上来给大家讲故事。要是以后能加强小手的锻炼,让它变得更灵巧,那就更棒了,咱们一起朝着心灵手巧的目标加油吧! 2、 小家伙的口才真不错

热心网友
04.25

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

COD救不了XGP!分析师早已预料到降价:毫不意外
游戏评测
COD救不了XGP!分析师早已预料到降价:毫不意外

微软调整XGP战略:降价与《使命召唤》延期入库的背后 最近游戏圈有个大消息:微软宣布下调Xbox Game Pass Ultimate和PC Game Pass的月度订阅价格。具体来看,Ultimate档位从每月29 99美元降到了22 99美元,PC Game Pass则从16 49美元降至13

热心网友
04.25
XGP迎重大变革!降价还没完 还有“自选套餐”模式
游戏评测
XGP迎重大变革!降价还没完 还有“自选套餐”模式

2026年,Xbox新掌门的第一把火:Game Pass要变“自助餐”了 2026年2月,阿莎·夏尔马接棒菲尔·斯宾塞,成为Xbox的新任CEO。这位新官上任,动作可谓雷厉风行。就在昨天,她点燃了第一把火:Xbox Game Pass Ultimate的月费,从29 99美元直接降到了22 99美元

热心网友
04.25
《AC起源》男主劝退
游戏评测
《AC起源》男主劝退"乔尔"演员做游戏:这行太残酷!

当明星演员想开游戏工作室:资深同行为何直言“别这么做”? 最近,游戏圈里发生了一场有趣的隔空对话。为《最后生还者》《死亡搁浅》等大作献声的知名演员特洛伊·贝克,在采访中透露了一个雄心勃勃的计划:他想创立自己的游戏工作室,去讲述“自己的故事”。他甚至提到,自己的灵感来源之一,正是曾为《刺客信条:起源》

热心网友
04.25
突发!Steam新手柄售价曝光:评测已偷跑!
游戏评测
突发!Steam新手柄售价曝光:评测已偷跑!

Steam新款手柄评测视频意外流出,定价信息同步曝光 游戏硬件圈最近有个不大不小的“意外”。根据海外多个科技消息源的报道,Valve即将推出的新款Steam Controller手柄,其评测视频竟然提前在网上泄露了。更关键的是,视频里还直接公布了这款产品的售价:99美元。 事情是这样的:一个名为“T

热心网友
04.25
索尼新规主机断网不让玩:内部人士回应了!
游戏评测
索尼新规主机断网不让玩:内部人士回应了!

此前,外网消息源透露,目前PlayStation在PS4和PS5的数字版游戏中加入了DRM验证(正版在线验证)机制。 前情提要>> 简单来说,这个新机制的效果是这样的:从今往后,如果你通过数字商店购买新游戏,那么主机就必须定期连接到PSN网络进行正版验证。具体规则是,如果主机连续超过30天处于离线状

热心网友
04.25