oracle查询历史会话,如何查询以往的session历史信息
1.查询以往的session历史信息
select * from v$active_session_history where session_id=12 and session_serial#=703;
2.查询ash使用的空间:
select * from v$sgastat where name like 'ASH%' ;
3.确认目前ash相关设置,如ash是否启用,间隔多久采样数据等
select a.ksppinm name, b.ksppstvl value, a.ksppdesc description
from x$ksppi a, x$ksppcv b
where a.indx = b.indx
and a.ksppinm like '_ash%' ;
4.查询确认目前ash最旧的采样时间:
select to_char(min(sample_time),'yyyy/mm/dd hh24:mi:ss') "Sample Time" from v$active_session_history ;
5.查询最近10分钟内最耗费cpu的sql语句:
select a.sql_id, a.sess_count, a.cpu_load, b.sql_text
from (select sql_id,
count(*) sess_count,
round(count(*) / sum(count(*)) over(), 2) cpu_load
from v$active_session_history
where sample_time > sysdate - 1 / (24 * 6)
and session_type <> 'BACKGROUND'
and session_state = 'ON CPU'
group by sql_id
order by count(*) desc) a,
v$sqlarea b
where a.sql_id = b.sql_id ;
6.查询最近10分钟内最耗费io的sql语句:
select a.sql_id, a.sess_count, a.sess_count, b.sql_text
from (select ash.sql_id, count(*) sess_count
from v$active_session_history ash, v$event_name evt
where ash.sample_time > sysdate - 1 / (24 * 6)
and ash.session_state = 'WAITING'
and ash.event_id = evt.event_id
and evt.wait_class = 'User I/O'
group by ash.sql_id
order by count(*) desc) a,
v$sqlarea b
where a.sql_id = b.sql_id;
7.查询最近10分钟内最耗费系统资源的sql语句:
select a.sql_id, a.cpu, a.wait, a.io, a.total, b.sql_text
from (select ash.sql_id,
sum(decode(ash.session_state, 'ON CPU', 1, 0)) "CPU",
sum(decode(ash.session_state, 'WAITING', 1, 0)) -
sum(decode(ash.session_state,'WAITING',decode(en.wait_class, 'USER I/O', 1, 0), 0)) "WAIT",
sum(decode(ash.session_state,'WAITING',decode(en.wait_class, 'USER I/O', 1, 0), 0)) "IO",
sum(decode(ash.session_state, 'ON CPU', 1, 1)) "TOTAL"
from v$active_session_history ash, v$event_name en
where sql_id is not null
and en.event# = ash.event#
and ash.sample_time > sysdate - 1 / (24 * 6)
group by ash.sql_id
order by sum(decode(ash.session_state, 'ON CPU', 1, 1)) desc) a,
v$sqlarea b
where a.sql_id = b.sql_id;
8.查询最近10分钟内最耗费系统资源的数据库会话:
select a.sid,a.serial#,b.username,a.user_id,a.program,a.cpu,a.waiting,a.io,a.total
from (select ash.session_id sid,
ash.session_serial# serial#,
ash.user_id,
ash.program,
sum(decode(ash.session_state, 'ON CPU', 1, 0)) "CPU",
sum(decode(ash.session_state, 'WAITING', 1, 0)) -
sum(decode(ash.session_state,'WAITING',decode(en.wait_class, 'USER I/O', 1, 0), 0)) "WAITING",
sum(decode(ash.session_state,'WAITING',decode(en.wait_class, 'USER I/O', 1, 0), 0)) "IO",
sum(decode(ash.session_state, 'ON CPU', 1, 1)) "TOTAL"
from v$active_session_history ash, v$event_name en
where sql_id is not null
and en.event# = ash.event#
and ash.sample_time > sysdate - 1 / (24 * 6)
group by ash.session_id,ash.user_id,ash.session_serial#,ash.program
order by sum(decode(ash.session_state, 'ON CPU', 1, 1)) desc) a,
v$session b
where a.sid = b.sid;
9.查询当前用户会话是在等待哪一个会话:
select distinct a.session_id,
a.session_serial#,
a.sql_id,
a.session_state,
a.session_type,
a.blocking_session,
a.blocking_session_serial#,
a.blocking_session_status,
a.event,
a.sql_id
from v$active_session_history a, v$session s
where a.blocking_session is not null
and a.blocking_session = s.sid
and a.blocking_session_serial# = s.serial#
and s.sql_id is not null;
10.
Oracle11g停用自动分析的方式:
exec dbms_auto_task_admin.disable(client_name=>'auto optimizer stats collection',operation=>null,window_name=>null) ;
Oracle11g启用自动分析的方式:
exec dbms_auto_task_admin.enable(client_name=>'auto optimizer stats collection',operation=>null,window_name=>null) ;
查询旧的统计数据保留的天数:
select dbms_stats.get_stats_history_retention from dual ;
修改统计数据保留的天数:
exec dbms_stats.alter_stats_history_retention(60) ;
查询目前最早的统计数据时间:
select dbms_stats.get_stats_history_availability from dual ;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28878983/viewspace-2136494/,如需转载,请注明出处,否则将追究法律责任。
oracle查询历史会话,如何查询以往的session历史信息相关推荐
- oracle查询历史会话,Oracle用户会话信息的查询方法
Oracle用户会话相信大家都比较了解,下面为您介绍的就是Oracle用户会话信息的查询方法,该方法供您参考,如果您感兴趣的话,不妨一看. 过V$SESSION视图,可以查询Oracle所有Oracl ...
- oracle查询cpu占用率高,ORACLE杀掉cpu占用率高的session
SPID一一system process id,表示该server process在OS层面的Porcess ID PID一一Oracle process id,可以理解Oracle给自己的进程的一个 ...
- oracle的会话(session)
会话(session)是oracle服务器对数据库连接用户记录的一种手段. oracle提供了v_$session的视图存储当前数据库的会话,查询时用v_$session 或v$session sql ...
- oracle 查询会话数量,Oracle会话数量查询及结束会话方法
Oracle会话数量查询及结束会话方法 一.数据库会话数量查询 查询当前数据库会话数量:select * from v$session 修改数据库最大会话数量:alter system set pro ...
- Oracle:彻底结束会话 ,彻底解锁
oracle会话被锁是经常的.但有时alter system kill session 'sid,serial#';并不能彻底的杀死会话.只能通过杀死Linux上对应的进程才行. 以前都是通过v$se ...
- oracle会话状态,oracle中会话的状态
我们可以通过oracle视图v$session来查看当前数据库中的所有会话信息,其中该视图有一列为status标志会话状态,oracle官方文档对这一列定义如下 STATUS VARCHAR2(8) ...
- Oracle Database-基础及查询部分
Oracle Database-基础及查询部分 Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位 ...
- oracle通过值查字段,Oracle 中 根据值 查询 所在 表和字段
-------------------- -- 这里是查询 数字型字段值 /*declare CURSOR cur_query IS select table_name, column_name, d ...
- ORACLE等待事件:read by other session
read by other session简介 官方关于read by other session的介绍如下: When information is requested from the datab ...
最新文章
- ant打包web项目
- Create an Apex class that returns contacts based on incoming parameters
- Java中创建对象的5种方式 -[转] http://www.codeceo.com/article/5-ways-java-create-object.html...
- Android总结篇系列:Activity Intent Flags及Task相关属性
- OpenGL基础36:天空盒
- 百度人脸识别使用总结(环境+测试+人脸库管理)
- UltraISO 对光盘镜像常用操作方法图解
- WinMTR 0.9.2 绿色免费版
- 计算机带来好处坏处的英语作文,关于电脑的好处与坏处的英语作文
- 射影几何----坎迪定理的证明
- 2021-07-15-2021年全球10大最佳单板计算机开发板(SBC)(第1-3名)
- WIN10的桌面和虚拟桌面的切换快捷键太方便了
- MLP is Maybe Your Need
- Unity内置Shader解读1——Bumped Diffuse
- 7-6 536 判定子串
- API查q绑定带反查sgk带接口API文件源码
- java socket 聊天室_java利用Socket实现聊天室功能实例
- pythonurllib爬虫教学_Python学习教程:这里是Python爬虫的起点,抢占资源啦
- 74LS85 比较器 【数字电路】
- html canvas颜色渐变色,HTML5-画布(canvas)效果之-渐变色