暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C 关于复合数据库操作的报告:方案

原创 Asher.HU 2021-02-04
885


此方案用于DBMS_SQL_MONITOR定义数据库操作并生成活动报告。

您的目标是将sh架构中表的四个查询分组为一个操作,然后生成一个报告。
  1. 在SQL * Plus中,以管理用户身份登录SAM开始一个名为SHOP(指定forced_tracking以确保SQL Monitor跟踪SQL)的操作,运行四个查询,然后按如下所示结束该操作:
    VARIABLE exec_id NUMBER;
    BEGIN
      :exec_id := DBMS_SQL_MONITOR.BEGIN_OPERATION ( dbop_name => 'SHOP', forced_tracking => 'Y' );
    END;
    /
    
    SELECT COUNT(*) FROM sh.sales;
    SELECT COUNT(*) FROM sh.customers;
    
    SELECT prod_id, cust_id 
    FROM   sh.sales 
    WHERE  prod_id < 26 
    ORDER BY prod_id;
    
    SELECT cust_id, cust_first_name, cust_last_name, cust_city 
    FROM   sh.customers 
    WHERE  cust_id < 30000 
    ORDER BY cust_id;
    
    BEGIN
      DBMS_SQL_MONITOR.END_OPERATION ( dbop_name => 'SHOP', dbop_eid => :exec_id );
    END;
    /
    复制
  2. 要获取有关操作的元数据,包括其状态和元数据,请查询V$SQL_MONITOR(包括示例输出):
    COL STATUS FORMAT a10
    COL DBOP_NAME FORMAT a10
    COL CON_NAME FORMAT a5
    
    SELECT STATUS, SQL_ID, DBOP_NAME, DBOP_EXEC_ID,
           TO_CHAR(ELAPSED_TIME/1000000,'000.00') AS ELA_SEC 
    FROM   V$SQL_MONITOR
    WHERE  DBOP_NAME = 'SHOP';
    
    STATUS     SQL_ID        DBOP_NAME  DBOP_EXEC_ID ELA_SEC
    ---------- ------------- ---------- ------------ -------
    DONE                     SHOP                  3  001.34
    复制
  3. 要获取有关SQL Monitor报告的元数据,请调用DBMS_SQL_MONITOR.REPORT_SQL_MONITOR(包括示例输出):
    SET LONG 10000000
    SET LONGCHUNKSIZE 10000000 
    SET PAGES 0
    SELECT DBMS_SQL_MONITOR.REPORT_SQL_MONITOR( 
      dbop_name => 'SHOP', type => 'TEXT', report_level => 'ALL') AS rpt
    FROM DUAL;
    
    SQL Monitoring Report
    
    Global Information
    ------------------------------
     Status              :  DONE
     Instance ID         :  1
     Session             :  SAM (87:6406)
     DBOP Name           :  SHOP
     DBOP Execution ID   :  3
     First Refresh Time  :  10/03/2017 07:33:32
     Last Refresh Time   :  10/03/2017 07:34:24
     Duration            :  52s
     Module/Action       :  sqlplus@myhost (TNS V1-V3)/-
     Service             :  MYSERVICE
     Program             :  sqlplus@myhost (TNS V1-V3)
    
    Global Stats
    ========================================================
    | Elapsed |   Cpu   |    IO    | Buffer | Read | Read  |
    | Time(s) | Time(s) | Waits(s) |  Gets  | Reqs | Bytes |
    ========================================================
    |    1.36 |    1.34 |     0.02 |    202 |  583 |  27MB |
    ========================================================
    
    复制
  4. 要生成活动的HTML报告,请将操作名称传递给DBMS_SQL_MONITOR.REPORT_SQL_MONITOR
    SET TRIMSPOOL ON
    SET TRIM ON
    SET PAGES 0
    SET LINESIZE 1000
    SET LONG 1000000
    SET LONGCHUNKSIZE 1000000
    
    SPOOL /tmp/shop.htm
    SELECT DBMS_SQL_MONITOR.REPORT_SQL_MONITOR(dbop_name=>'SHOP',report_level=>'ALL',TYPE=>'active') 
    FROM   DUAL;
    SPOOL OFF
    复制

    下图显示了活动报告:

    图21-3 SQL Monitor报告


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论