ITPub博客

首页 > 数据库 > Oracle > ASH

ASH

原创 Oracle 作者:Diy_os 时间:2015-04-23 13:40:59 0 删除 编辑
我们可以用第三方工具监控数据库,如toad,spotlight(我用的是这个,还不错),但是oracl提供的监测数据的工具不可忽视,学会应用会给监控数据带来便捷。下面介绍ASH.
ASH:active session history
我们可以查v$active_session_history(记录了活动session的历史信息),v$session_wait_history(记录了session等待的信息),v$session_wait
对active session的理解:持有CPU资源;有事务等待
SQL> select * from v$version where rownum=1;


BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
下面简介如何使用ASH报告:
SQL> SELECT DISTINCT SID FROM V$MYSTAT;


       SID
----------
       143


SQL> update t set name='s' where id=1;


已更新 1 行。
SQL> select distinct sid from v$mystat;


       SID
----------
21


SQL> update t set name='d' where id=1;
此时出现了阻塞:
通过脚本生成ASH报告:
SQL> @/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/admin/ashrpt.sql


Current Instance
~~~~~~~~~~~~~~~~


   DB Id    DB Name      Inst Num Instance
----------- ------------ -------- ------------
 3848072073 ORCL3939            1 orcl3939




Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'
输入 report_type 的值:  (可以选择html,text格式)

..............
.............
.............
根据填写的时间段,我填写的是13:10    10(如果填写的-10,则时间段是13:00-13:10),可以生成ash报告:

上面只是报告一小部分截图,上面分析了这一段时间内的top events,top sql等事件,同时也出现了上面模拟的等待。
具体可以实验研究。
我们也可以通过OEM来生成ASH报告,同样在em里可以分析性能问题,比较直观。
对于em,还是ash,都是通过查找视图来收集这些信息的,如果我们熟悉的话,可以直接查视图发现问题。
例如上面的阻塞:
select * from  v$session_wait;

关于空的的等待(idle)我们不需要关注,很直观就发现等待的类型,依次诊断数据库。

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

下一篇: AWR ADDM
请登录后发表评论 登录
全部评论

注册时间:2014-12-11

  • 博文量
    159
  • 访问量
    1044936