前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小知识:SQL Monitor Report的使用

小知识:SQL Monitor Report的使用

作者头像
Alfred Zhao
发布2023-03-20 11:03:53
2990
发布2023-03-20 11:03:53
举报

在上一篇 优化利器In-Memory开启和效果

中,提到的两个SQL对比,使用的是传统的dbms_xplan.display_cursor方式来查看执行计划,好处是文本输出的通用性强,基本信息也都有。

但如果大家参加过我们的RWP培训,就会发现O原厂强烈推荐大家使用的一个工具是 SQL Monitor Report,且要使用ACTIVE的类型,这可以让看SQL执行计划变得赏心悦目。

本文就简单介绍下,如何使用 SQL Monitor Report,也以之前的例子,来更直观的看到二者执行计划的差异:

1.准备通用的sqlmon.sql脚本

为了更具通用性,这里以SQL_ID为输入条件:

vi sqlmon.sql

set pagesize 0 echo off timing off linesize 1000 trimspool on trim on long 2000000 longchunksize 2000000 feedback off
spool sql_monitor_&sql_id\.htm
select dbms_sqltune.report_sql_monitor(type=>'ACTIVE', sql_id=>'&sql_id', report_level=>'ALL') monitor_report from dual;
spool off

2.执行两条SQL,并确认各自的sql_id

这次使用更明确的hints来区分是否使用In-Memory和确保都可以生成SQL Monitor Report:

--SQL1:
select /*+ monitor */ count(*) from L

sql_id: ahtu40vr8dbhu

--SQL2:
select /*+ monitor no_inmemory */ count(*) from L

sql_id: 7rzcsju067wr0

获取sql_id有多种方式,其实最方便的就是也可以通过传统看执行计划的方式来获取。

3.调用sqlmon脚本生成SQL Monitor Report

SQL> @sqlmon
Enter value for sql_id: ahtu40vr8dbhu
Enter value for sql_id: ahtu40vr8dbhu

SQL> @sqlmon
Enter value for sql_id: 7rzcsju067wr0
Enter value for sql_id: 7rzcsju067wr0

4.对比两个SQL Monitor Report

SQL1的SQL Monitor Report:

SQL2的SQL Monitor Report:

除了之前执行时就体验的执行时间差异,其对IO资源的实际消耗也可以非常直观的看到,二者有很大的差异。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.准备通用的sqlmon.sql脚本
  • 2.执行两条SQL,并确认各自的sql_id
  • 3.调用sqlmon脚本生成SQL Monitor Report
  • 4.对比两个SQL Monitor Report
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档