此方案用于DBMS_SQL_MONITOR
定义数据库操作并生成活动报告。
您的目标是将
sh
架构中表的四个查询分组为一个操作,然后生成一个报告。- 在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; /
复制 - 要获取有关操作的元数据,包括其状态和元数据,请查询
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
复制 - 要获取有关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 | ========================================================
复制 - 要生成活动的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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle Concepts(Oracle 19c):07 SQL
Ryan Bai
986次阅读
2025-04-09 10:57:11
Oracle DataGuard高可用性解决方案详解
孙莹
524次阅读
2025-03-26 23:27:33
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
499次阅读
2025-04-15 17:24:06
墨天轮个人数说知识点合集
JiekeXu
410次阅读
2025-04-01 15:56:03
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
407次阅读
2025-04-08 09:12:48
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
391次阅读
2025-04-18 14:18:38
Oracle SQL 执行计划分析与优化指南
Digital Observer
390次阅读
2025-04-01 11:08:44
Oracle 19c RAC更换IP实战,运维必看!
szrsu
350次阅读
2025-04-08 23:57:08
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
343次阅读
2025-04-20 10:07:02
阿里云 Elasticsearch Serverless 检索增强型 8.17 版来袭!
阿里云大数据AI技术
323次阅读
2025-04-18 10:24:15