当前位置: 首页 > news >正文

Oracle查看历史会话信息视图介绍

        在日常运维过程中,处理故障时经常需要查看历史会话信息,在Oracle数据库中,查看历史会话信息主要依赖于以下动态性能视图(Dynamic Performance Views)和自动工作负载存储库(AWR)相关视图。以下是关键视图及说明:


1. 实时/历史会话视图

V$SESSION
  • 作用:查看当前活动会话的实时信息(不包含历史会话)。

  • 关键列:

    SID, SERIAL#, USERNAME, STATUS, PROGRAM, SQL_ID, EVENT, LOGON_TIME
V$ACTIVE_SESSION_HISTORY (ASH)
  • 作用:存储最近的活动会话历史(每秒采样一次),默认保留约1小时。

  • 关键列:

    SAMPLE_ID, SAMPLE_TIME, SESSION_ID, SESSION_SERIAL#, USER_ID, SQL_ID, EVENT, WAIT_TIME
  • 示例:

    SELECT sample_time, session_id, sql_id, event, program 
    FROM v$active_session_history 
    WHERE session_type = 'FOREGROUND';

2. 长期历史会话视图(AWR)

DBA_HIST_ACTIVE_SESS_HISTORY
  • 作用:ASH数据的长期存储(通过AWR快照持久化),保留时间由AWR_RETENTION_POLICY决定(默认8天)。

  • 关键列同V$ACTIVE_SESSION_HISTORY

  • 示例1:

    SELECT sample_time, session_id, sql_id, event
    FROM dba_hist_active_sess_history 
    WHERE snap_id BETWEEN 1000 AND 1005;  -- 指定快照范围
  • 示例2:

    select event, sql_id, machine,count(*)from dba_hist_active_sess_history ashwhere sample_time >=to_timestamp('2025-08-11 07:36:00', 'yyyy-mm-dd hh24:mi:ss')and sample_time <=to_timestamp('2025-08-11 07:40:00', 'yyyy-mm-dd hh24:mi:ss') group by event, sql_id,machineorder by 4 desc;
DBA_HIST_SESSION
  • 作用:记录已断开连接的历史会话信息(通过AWR快照捕获)。

  • 关键列:

    SNAP_ID, SESSION_ID, SERIAL#, USERNAME, STATUS, PROGRAM, LOGON_TIME, LOGOFF_TIME
  • 示例:

    SELECT username, program, logon_time, logoff_time
    FROM dba_hist_session 
    WHERE logoff_time > SYSDATE - 1;  -- 最近24小时断开的会话

3. 辅助视图

DBA_HIST_SQLTEXT
  • 作用:关联会话中执行的SQL文本。

    SELECT sql_text FROM dba_hist_sqltext WHERE sql_id = 'xxx';
DBA_HIST_SNAPSHOT
  • 作用:查看AWR快照时间范围,用于关联历史数据。

    SELECT snap_id, begin_interval_time 
    FROM dba_hist_snapshot 
    ORDER BY snap_id DESC;

查询示例:合并历史会话与SQL文本

SELECT ash.sample_time,ash.session_id,ash.sql_id,st.sql_text,ash.event
FROM dba_hist_active_sess_history ash
JOIN dba_hist_sqltext st ON ash.sql_id = st.sql_id
WHERE ash.user_id = (SELECT user_id FROM dba_users WHERE username = 'SCOTT')AND ash.sample_time BETWEEN SYSDATE - 1 AND SYSDATE;  -- 最近24小时

权限要求

  • 查询V$视图:需授予SELECT_CATALOG_ROLESELECT ANY DICTIONARY权限。

  • 查询DBA_HIST_视图:需授予DBA或显式授权:

    GRANT SELECT ON dba_hist_active_sess_history TO your_user;

注意:历史数据依赖AWR快照。确保AWR已启用:

SELECT * FROM dba_hist_wr_control;  -- 检查快照设置

通过组合这些视图,您可以全面分析Oracle数据库的历史会话行为、性能瓶颈及SQL执行情况。

http://www.lryc.cn/news/623907.html

相关文章:

  • 深入理解QFlags:Qt中的位标志管理工具
  • Springboot项目3种视图(JSP、Thymeleaf、Freemarker)演示
  • 【SpringBoot】SpringBoot的异步任务、邮件发送、定时任务
  • Spring Bean 的生命周期:从创建到销毁的完整旅程​
  • 好看的个人导航系统多模板带后台
  • React端到端测试
  • 通达信【牛股妖股埋伏】副图+选股指标
  • Shell脚本-while循环应用案例
  • nn.Module模块介绍
  • 计算机视觉(一):nvidia与cuda介绍
  • OpenMemory MCP发布!AI记忆本地共享,Claude、Cursor一键同步效率翻倍!
  • 【Linux】文件基础IO
  • Agent开发进阶路线:从基础响应到自主决策的架构演进
  • Python使用数据类dataclasses管理数据对象
  • 【C2000】C2000例程使用介绍
  • Python进行中文分词
  • MySQL定时任务详解 - Event Scheduler 事件调度器从基础到实战
  • Blender模拟结构光3D Scanner(二)投影仪内参数匹配
  • 火狐(Mozilla Firefox)浏览器离线安装包下载
  • 学习Python中Selenium模块的基本用法(5:程序基本步骤)
  • Python数据类型转换详解:从基础到实践
  • Python 基础语法(二)
  • 0️⃣基础 认识Python操作文件夹(初学者)
  • Linux:TCP协议
  • RK3568平台开发系列讲解:PCIE trainning失败怎么办
  • 深入解析函数指针及其数组、typedef关键字应用技巧
  • 0-12岁幼儿启蒙与教育
  • CF2121C Those Who Are With Us
  • 2001-2024年中国玉米种植分布数据集
  • 【牛客刷题】01字符串按递增长度截取并转换为十进制数值