zoukankan      html  css  js  c++  java
  • Oracle AWRSQRPT报告生成和性能分析

    我写的SQL调优专栏:https://blog.csdn.net/u014427391/article/category/8679315

    对于局部的,比如某个页面列表sql,我们可以使用Oracle的执行计划进行sql调优,但是对于整个系统来说,你可以知道哪些sql比较耗时?当然可以通过查Oracle的共享池得到,不过Oracle系统本身就提供了几种性能分析报告,比如AWR、ASH、ADDM、AWRSRPT等等报告,本博客介绍一下AWRSRPT性能分析报告

    1.1 工具选择

    对于Oracle数据库可以使用sqlplus或者plsql developer客户端软件
    sqlplus 使用
    可以使用sqlplus工具登录
    进入数据库

    sqlplus / as sysdba
    

    查看用户

    show parameter db_name
    

    用登录之后才可以使用
    plsql developer使用
    plsql developer也可以使用,登录之后,选择文件(File)->新建(New)->命令窗口(Command Window)
    在这里插入图片描述

    1.2 自动创建快照

    开始压测后执行

    exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();
    

    可以通过dba_hist_wr_control查看当前的配置情况,当前awr为每1小时做一次数据快照,保留时间为8天。

     select * from dba_hist_wr_control;
    

    在这里插入图片描述
    修改配置,每隔30分钟收集一次,保存1天

    execute dbms_workload_repository.modify_snapshot_settings(interval=>30,retention=>14000);
    

    关闭自动收集

    SQL>exec dbms_workload_repository.modify_snapshot_settings (interval=>0,retention=>24*60);
    

    1.3 手工创建快照

    除了自动创建快照,也可以手工创建快照

    select dbms_workload_repository.create_snapshot() from dual;
    

    1.4 AWRSQRPT报告生成

    对于sqlplus客户端的可以使用

    @?/rdbms/admin/awrsqrpt.sql
    

    对于plsql客户端,我用绝对路径去执行,@?的命令找不到文件
    这个要根据自己的Oracle安装路径去修改,例如:

    @D:/oracle/product/11.2.0/dbhome_1/RDBMS/ADMIN/awrsqrpt.sql
    

    (1)AWRSQRPT报告格式

    Enter value for report_type:html

    报告格式,有两种html和txt,这里我选择html

    (2)快照天数

    Enter value for num_days:1

    要手机快照的天数,我选择1

    (3)快照开始id
    Enter value for begin_snap
    id要选日志打印范围内的

    (4) 快照结束id
    Enter value for end_snap
    id要选日志打印范围内的

    (5) sql的id
    Enter value for sql_id
    查询SQL_ID,sql_text可以从AWR拿

      select sql_text, last_load_time, t.SQL_ID
          from v$sql t
         where last_load_time is not null
           and sql_text like 'SELECT count(*) from%'
         order by t.LAST_LOAD_TIME desc
    

    (6) AWRSQRPT报告名称
    填写AWRSQRPT报告的名称,我可以填写awrsqrpt_20190421.html,然后在打印的日志里有文件保存的路径:,比如:D:oracleproduct11.2.0dbhome_1RDBMSADMINawrsqrpt.html

    二、AWRSQRPT报告性能分析

    AWRSQRPT可以说是AWR和ASH的补充,可以看到执行计划的细节,oracle的执行计划会随着环境的改变而改变,也会随着数据改变而改变,所以会产生多个执行计划,而AWRSQRPT就是针对这种情况的报告,AWRSQRPT会有多个执行计划

    有多个执行计划,这里产生了4个执行计划
    在这里插入图片描述

    AWRSQRPT之Plan statistic,其中一个执行计划
    在这里插入图片描述

    AWRSQRPT之Execution plan执行计划
    在这里插入图片描述

  • 相关阅读:
    Linux(一)简介与安装
    BBS项目(四)
    BBS项目(三)
    BBS项目(二)
    BBS项目(一)
    会话控制
    SQL表连接查询
    [转]使用GROUP BY WITH ROLLUP改善统计性能
    MySQL中的set和enum
    PHP操作MySQL
  • 原文地址:https://www.cnblogs.com/mzq123/p/10745091.html
Copyright © 2011-2022 走看看