`
streamsong
  • 浏览: 80439 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

结合AWR报告生成HTML格式的SQL执行计划

阅读更多

      有些时候,我们需要分析占用资源比较大的sql的执行计划,也需要将sql的执行计划以报告的形式反馈给客户,由于AWR报告里的SQL通常都是些变量,因此以命令行方式生成sql的执行计划就很麻烦,而且也不美观,利用awrsqrpt.sql脚本就很方便。

      生成HTML的执行计划很简单,如果是生成本地数据库的sql执行计划,执行awrsqrpt.sql就可以,但是如果需要生成由AWR迁移到本地数据库的分析数据,就需要使用awrsqrpi.sql。

SQL> @?/rdbms/admin/awrsqrpi

Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'
输入 report_type 的值:  html

Type Specified:  html


Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   DB Id     Inst Num DB Name      Instance     Host
------------ -------- ------------ ------------ ------------
* 1520519778        1 STREAM       stream       STREAM
  2400249746        1 CNDERPDB     cnderpdb1    p5a1
  2400249746        2 CNDERPDB     cnderpdb2    p5b1

输入 dbid 的值:  2400249746       --输入要生成执行计划的数据库ID
Using 2400249746 for database Id
输入 inst_num 的值:  1                 --输入节点号
Using 1 for instance number


Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed.  Pressing <return> without
specifying a number lists all completed snapshots.


输入 num_days 的值:  7

Listing the last 7 days of Completed Snapshots

                                                        Snap
Instance     DB Name        Snap Id    Snap Started    Level
------------ ------------ --------- ------------------ -----
cnderpdb1    CNDERPDB         50063 16 6月  2011 08:00     1
                              50064 16 6月  2011 09:00     1
                              50065 16 6月  2011 10:00     1
                              50066 16 6月  2011 11:00     1
                              50067 16 6月  2011 12:00     1

... ...

                              50206 22 6月  2011 07:00     1
                              50207 22 6月  2011 08:00     1
                              50208 22 6月  2011 09:00     1
                              50209 22 6月  2011 10:00     1

 

Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
输入 begin_snap 的值:  50063               --输入开始快照号
Begin Snapshot Id specified: 50063

输入 end_snap 的值:  50209                  --输入结束快照号
End   Snapshot Id specified: 50209

 


Specify the SQL Id
~~~~~~~~~~~~~~~~~~
输入 sql_id 的值:  8hm5s0k011450      --在AWR报告中看到的占用资源较大的SQL ID
SQL ID specified:  8hm5s0k011450

Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrsqlrpt_1_50063_50209.html.  To use this name,

press <return> to continue, otherwise enter an alternative.

输入 report_name 的值:  d:\stream.html   --保存路径和名字

Using the report name d:\stream.html

Report written to d:\stream.html
SQL>

 

之后打开D盘下的stream.html就可以很直观的看到SQL_ID为8hm5s0k011450的执行计划

Stat Name Statement Total Per Execution % Snap Total
Elapsed Time (ms) 18,121,198 4.89 3.20
CPU Time (ms) 17,874,450 4.82 3.33
Executions 3,707,839    
Buffer Gets 404,447,392 109.08 3.85
Disk Reads 0 0.00 0.00
Parse Calls 6 0.00 0.00
Rows 9,831,284 2.65  
User I/O Wait Time (ms) 0    
Cluster Wait Time (ms) 0    
Application Wait Time (ms) 0    
Concurrency Wait Time (ms) 0    
Invalidations 0    
Version Count 38    
Sharable Mem(KB) 713    

 

Id Operation Name Rows Bytes Cost (%CPU) Time
0 SELECT STATEMENT       3 (100)  
1    FOR UPDATE          
2      SORT ORDER BY   1 32 3 (34) 00:00:01
3        TABLE ACCESS FULL TEMPSK 1 32 2 (0) 00:00:01
1
1
分享到:
评论

相关推荐

    如何使用AWR报告发现低效的SQL

    目前发现很多局点在上线以后有很多低效的sql,导致cpu繁忙、磁盘I/O繁忙、效率低下,影响系统的正常运行。如何在测试环节或上线以后发现这些低效的sql呢? Oracle AWR报告可以很好的帮我们解决这个问题

    AWR报告生成详解

    AWR报告生成详解,详细介绍了ORACLE的AWR分析

    ORACLE AWR报告生成.docx

    ORACLE AWR报告生成

    oracle awr报告生成

    window下直接调用生成弹出html格式的awr报告,不用去linux下了,但是妖之道数据库密码的啊,不然没法调用,修改里bat里的连接串即可 样例: sqlplus sys/oracle@zhengshiku_2 as sysdba @addmrpt.sql

    AWR报告生成详解.doc

    本文介绍Windows和Linux平台生成oracle awr报告方法,适合新手查阅。欢迎大家下载,如有建议和疑问可联系作者

    脚本生成AWR报告步骤

    脚本生成AWR报告步骤

    awr报告无法生成原因分析

    最近想要通过awr观察下某个oracle实例的性能情况,碰到了在sqlplus执行awrrpt.sql到选择snapshot区间的时候无任何区间供选导致无法进一步生 成awr的情况,而且手动使用execute DBMS_WORKLOAD_REPOSITORY.CREATE_...

    awr报告awr报告awr报告awr报告

    awr报告awr报告awr报告awr报告

    ORACLE_AWR报告生成和分析.doc

    对oracle的AWR报表生成和各项关键指标分析进行具体分析论述。

    AWR报告生成和分析详解

    AWR报告生成和分析详解,对于报告中相关参数解析,分析数据库异常

    oracle 生成awr 报告

    使用非常详尽的步骤,一步一步的指引我们在oracle 中如何生成一份awr报告

    oracle awr报告分析

    oracle awr报告具体分析

    AWR报告详细分析

    Oracle AWR报告详细分析,详细地说明了AWR报告里个统计量含义。

    性能测试监控数据库 打印AWR报告

    性能测试过程中,我们会监控数据库资源,发现性能测试瓶颈在数据库后,需要打印oracle awr报告来定位问题,那我们如何打印awr报告呢?以下为生成awr步骤。1. 首先第一步查看实例:echo $ORACLE_SID 2. 赋值实例:...

    AWR报告分析

    在看性能指标的时候,心里先要明白,数据库出现性能问题,一般都在三个地方,io,内存,cpu,这三个又是...相反,cpu时间花费多的话,有可能是解析sql语句,也可能是过滤太多的数据,到不一定是和io或内存有关系了 。

    oracle抓取指定时间段AWR报告实例说明 .docx

    记一次生产环境排查服务器性能优化的问题,需要获取oracle的AWR报告,进行分析服务器sql的执行时间

    如何查看awr报告

    oracle查看awr的详细介绍 AWR 是 Oracle 10g 版本 推出的新特性, 全称叫Automatic Workload Repository-自动负载信息库, AWR 是通过对比两次快,照(snapshot)收集到的统计信息,来生成报表数据,生成的报表包括多个...

    AWR报告手动配置

    AWR报告生成手动配置,调整AWR配置,dbms_workload_repository包

    如何分析AWR报告

    如何分析AWR报告

Global site tag (gtag.js) - Google Analytics