当前位置:  数据库>oracle

通过存储过程自动生成AWR报告

    来源: 互联网  发布时间:2017-05-20

    本文导语: 以下是存储过程内容: CREATE OR REPLACE PROCEDURE sp_auto_awrreport(reporttime varchar2 default null,                                              rpt_interval number default 2) AS----用途:自动生成AWR报告----创建人:cavlin----创建日期:20130210----r...

以下是存储过程内容:

CREATE OR REPLACE PROCEDURE sp_auto_awrreport(reporttime varchar2 default null,
                                              rpt_interval number default 2)
AS
----用途:自动生成AWR报告
----创建人:cavlin
----创建日期:20130210
----reporttime 报告结束时间
----rpt_interval 报告间隔 1:30分钟,2:60分钟
start_snap number;
end_snap number;
start_time varchar2(14);
end_time varchar2(14);
awr_file utl_file.file_type;
n_dbid  number;

BEGIN

  if reporttime is null then
    ---查询最大的快照id
    select max(snap_id) into end_snap from dba_hist_snapshot;
    start_snap:=end_snap-rpt_interval;
  else
    ---取输入时间对应的snap_id
    select snap_id
    into end_snap
    from dba_hist_snapshot
  where to_char(end_interval_time, 'yyyymmddhh24mi') = reporttime
    and instance_number = 1;
    start_snap:=end_snap-rpt_interval;
  end if;

---格式化快照时间
  select dbid,to_char(end_interval_time-rpt_interval/48, 'yyyymmddhh24mi'),to_char(end_interval_time, 'yyyymmddhh24mi')
        into n_dbid,start_time,end_time
    from dba_hist_snapshot
  where snap_id = end_snap and instance_number=1;

---实例1
  awr_file:=utl_file.fopen('DIR_AWRREPORT','AWR_NODE1_'||start_time||'_'||end_time||'.html', 'a',32767);
  for awr_info in (select output from table(dbms_workload_repository.awr_report_html(n_dbid,1,start_snap,end_snap,0))) loop
  UTL_FILE.put_line(awr_file,awr_info.output);
  end loop;
  utl_file.fclose(awr_file);

---实例2
  awr_file:=utl_file.fopen('DIR_AWRREPORT','AWR_NODE2_'||start_time||'_'||end_time||'.html', 'a',32767);
  for awr_info in (select output from table(dbms_workload_repository.awr_report_html(n_dbid,2,start_snap,end_snap,0))) loop
  UTL_FILE.put_line(awr_file,awr_info.output);
  end loop;
  utl_file.fclose(awr_file);

END sp_auto_awrreport;

可以直接在数据库中调用,也可以通过shell调用:

cat  /opt/cron/autoawr.sh
#!/bin/bash

sqlplus -s / as sysdba


    
 
 

您可能感兴趣的文章:

  • 怎么通过C语言自动生成MAC地址
  • 如何通过自动生成的makefile 看各个文件的依赖关系
  • 我想问一下,java生成的.class文件能不能通过某种工具生成.exe文件?
  • QT程序通过Qmake生成的makefile能不能做make install?
  • 怎么通过内核源码包生成源码树?
  • 通过shell解析文件,并根据解析内容生成新的文件。
  • 编译javac HelloWorld.java通过后生成class文件,但运行时总出现noclass错误!
  • android通过bitmap生成新图片关键性代码
  • mysql通过ssl的方式生成秘钥具体生成步骤
  • 怎样通过读取数据库,对前面的<select>的选择,动态生成后面一个<select>??急用!一定给分,
  • 请教如何通过循环生成控件?如何显示事件触发后生成的控件?可以这样写吗(见内)?谢谢!
  • java解析dbf之通过javadbf包生成和读取dbf文件
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 想法:内存中的数据通过DMA存储到USB-disk中
  • 各位大虾,谁知道怎么通过jdbc调用sqlserver2000的存储过程
  • 想搞嵌入式驱动的开发,请大虾给个简单例程(通过SPI读写外扩存储芯片),以及开发步骤及应注意的地方,怎么加入内核和使用该驱动?谢谢
  • 通过sql存储过程发送邮件的方法
  • 通过系统数据库获取用户所有数据库中的视图、表、存储过程
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • applet可以不通过数字签名,通过设置IE直接在本地访问本地文件吗
  • php通过socket_bind()设置IP地址代码示例
  • 我使用.net编译通过,但是使用g++编译不能通过。总是提示我undefined reference to ~myclass()
  • 通过javascript库JQuery实现页面跳转功能代码
  • 紧急求救!能通过jdbc怎样连接sqlsever 然后通过 for xml 关键字得到xml流吗?
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • 我想我的网站屏蔽掉通过某些网站过来的访问,我想通过htaccess 文件来做,请大家帮帮我。
  • linux下通过crond实现自动执行程序
  • 如何通过INTERNET访问通过共项一条线路上网的局域网中的机器???
  • 通过docker commit命令保存对docker容器的修改
  • 为什么g++编译通过了,而gcc却编译通过不了???
  • 通过docker run命令运行新的docker镜像
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户
  • 通过docker ps命令检查运行中的docker镜像
  • Jbuilder第一次编译说缺包,引入通过!然后把原来引入的注释,又通过!上帝,救我!
  • Session id实现通过Cookie来传输方法及代码参考
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • 通过docker search命令搜索可用docker镜像
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户 100分相赠
  • Python3通过request.urlopen实现Web网页图片下载
  • 工作站Redhat Linux7.2如何通过NT4.0 proxy代理服务器上网,我不能通过其验证!请高手指点思路和方法!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,