文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Oracle动态视图v$active_session_history怎么应用

2023-07-05 10:30

关注

这篇文章主要介绍“Oracle动态视图v$active_session_history怎么应用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Oracle动态视图v$active_session_history怎么应用”文章能帮助大家解决问题。

Oracle动态视图实战之v$active_session_history

先看下官方解释

实际工作中主要应用

v$active_session_history的字段非常丰富,实际工作中主要应用在下面这些情况:

a.应用场景:开发反应2023-03-02 00:22至00:35,数据落盘慢,根据情况查看此时间段的主要活动事件,数量,与sql_id(全局)select count(*), sql_id, event, blocking_session  from gv$active_session_history where sample_time between       to_date('2023-03-02 00:22:00', 'yyyy-mm-dd hh34:mi:ss') and       to_date('2023-03-02 00:35:00', 'yyyy-mm-dd hh34:mi:ss') group by sql_id, event, blocking_session order by 1;(非全局)BLOCKING_INST_ID--被阻塞者, blocking_session--阻塞者select count(*), sql_id, event, BLOCKING_INST_ID, blocking_session  from v$active_session_history where sample_time between       to_date('2023-03-02 00:20:00', 'yyyy-mm-dd hh34:mi:ss') and       to_date('2023-03-02 00:35:00', 'yyyy-mm-dd hh34:mi:ss') group by sql_id, event, BLOCKING_INST_ID, blocking_session order by 1;b.现在我们已经得到两个关键信息:sql_id与阻塞事件,首先根据sql_id我们可以再进一步使用此视图,实际中可以多调整几个较小的时间段,以突出最有代表的信息select count(*),       session_id,       session_serial#,       sql_id,       event,       BLOCKING_INST_ID,       blocking_session  from v$active_session_history where sample_time between       to_date('2023-03-02 00:24:00', 'yyyy-mm-dd hh34:mi:ss') and       to_date('2023-03-02 00:25:00', 'yyyy-mm-dd hh34:mi:ss')   and sql_id = '1xfbtdvu3xb67' group by session_id,          session_serial#,          sql_id,          event,          BLOCKING_INST_ID,          blocking_session order by 3;c.加入等待事件后更清晰select count(*),       session_id,       sql_id,       event,       BLOCKING_INST_ID,       blocking_session  from v$active_session_history where sample_time between       to_date('2023-03-02 00:25:00', 'yyyy-mm-dd hh34:mi:ss') and       to_date('2023-03-02 00:35:00', 'yyyy-mm-dd hh34:mi:ss')   and event = 'library cache lock'   and sql_id = '1j47z0mc6k02b' group by session_id, sql_id, event, BLOCKING_INST_ID, blocking_session order by 1;结论:可以看出大量并发等待,最终是发现有什么阻塞了此SQL语句

结合我们的AWR报告

当然也要结合我们的AWR报告:(两份为同时间段,上一份为有争用,下一份为正常情况,报告太长,只截取了关键点)

Oracle动态视图v$active_session_history怎么应用

Oracle动态视图v$active_session_history怎么应用

Oracle动态视图v$active_session_history怎么应用

Oracle动态视图v$active_session_history怎么应用

Oracle动态视图v$active_session_history怎么应用

Oracle动态视图v$active_session_history怎么应用

Oracle动态视图v$active_session_history怎么应用

Oracle动态视图v$active_session_history怎么应用

关键点

最后关键点a:下面报告里的sql_id与事件与v$active_session_history里查出来的结果相同,进一步证明事件与此SQL的关联性。

Oracle动态视图v$active_session_history怎么应用

Oracle动态视图v$active_session_history怎么应用

我们根据SQL_ID找到相应的SQL语句,从而找到对应的TABLE,最终对应到两张分区表,分别为:AA_BBB_CCCC_DDDD_OUT,AA_BBB_CCCC_DDDD_IN。

#根据dba_objects确定创建时间是否匹配select owner,       object_name,       object_type,       to_char(created, 'yyyy-mm-dd hh34:mi:ss')  from dba_objects where object_name = 'AA_BBB_CCCC_DDDD_OUT'   and created > to_date('2023-03-01', 'yyyy-mm-dd') order by 4; select owner,       object_name,       object_type,       to_char(created, 'yyyy-mm-dd hh34:mi:ss')  from dba_objects where object_name = 'AA_BBB_CCCC_DDDD_IN'   and created > to_date('2023-03-01', 'yyyy-mm-dd') order by 4;

关于“Oracle动态视图v$active_session_history怎么应用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯