从数据字典中获取ash信息


  1. 1.v$active_session_history 获取当前或最近数据库中的会话信息
  2. 2.dba_hist_active_sess_history 存储ash历史信息
  3. 3.查看过去15分钟内数据库中所有事件以及它们总的等待时间:
  4. select s.event,sum(s.wait_time + s.time_waited) total_wait
  5. from v$active_session_history s
  6. where s.sample_time between sysdate-1/24/4 and sysdate-1/24/4
  7. group by s.event
  8. order by 2 desc;

  9. 4.如果想得到更具体的会话信息,并且想查看过去15分钟内使用最多cpu资源的前5位会话,可以提交下面的语句:
  10. select * from
  11. (select s.username,s.module,s.sid,s.serial#,count(*)
  12. from v$active_session_history h,v$session s
  13. where h.session_id = s.sid
  14. and h.session_serial# = s.serial#
  15. and session_state = 'ON CPU' and sample_time > sysdate - interval '15' minute
  16. group by s.username,s.module,s.sid,s.serial#
  17. order by count(*) desc
  18. )
  19. where rownum <= 5;

  20. 5.如果想要查看某个给定采样周期内使用最多的数据库对象,则可以将v$active_session_history和dba_objects连接起来获得信息:
  21. select * from
  22. (select o.object_name,o.object_type,s.event,sum(s.wait_time + s.time_waited) total_waited
  23. from v$active_session_history s,dba_objects o
  24. where s.sample_time > sysdate - interval '15' minute
  25. and s.current_obj# = o.object_id
  26. group by o.object_name,o.object_type,s.event
  27. order by 4 desc
  28. )
  29. where rownum <= 5;

  30. 6.查询某天使用资源最多的用户:
  31. select * from
  32. (select u.username,h.module,h.session_id sid,h.session_serial# serial#,count(*)
  33. from dba_hist_active_sess_history h,dba_users u
  34. where h.user_id = u.user_id
  35. and session_state = 'ON CPU'
  36. and (sample_time between to_date('20170101 00:00:00','yyyymmdd hh24:mi:ss') and to_date('20170131 23:59:59','yyyymmdd hh24:mi:ss'))
  37. and u.username != 'SYS'
  38. group by u.username,h.module,h.session_id,h.session_serial#
  39. order by count(*) desc
  40. )
  41. where rownum <= 5;

  42. 接下来要关注具体的数据库对象,可以面向同样的时间帧提交下面的查询:
  43. select * from
  44. (select o.object_name,o.object_type,s.event,sum(s.wait_time + s.time_waited) total_waited
  45. from v$active_session_history s,dba_objects o
  46. where (sample_time between to_date('20170101 00:00:00','yyyymmdd hh24:mi:ss') and to_date('20170131 23:59:59','yyyymmdd hh24:mi:ss'))
  47. and s.current_obj# = o.object_id
  48. group by o.object_name,o.object_type,s.event
  49. order by 4 desc
  50. )
  51. where rownum <= 5;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28878983/viewspace-2138260/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/28878983/viewspace-2138260/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值