gpt4 book ai didi

小知识:SQLMonitorReport的使用

转载 作者:我是一只小鸟 更新时间:2023-03-19 14:32:12 26 4
gpt4 key购买 nike

在上一篇 优化利器In-Memory开启和效果 中,提到的两个SQL对比,使用的是传统的 dbms_xplan.display_cursor 方式来查看执行计划,好处是文本输出的通用性强,基本信息也都有。 但如果大家参加过我们的RWP培训,就会发现O原厂强烈推荐大家使用的一个工具是 SQL Monitor Report,且要使用ACTIVE的类型,这可以让看SQL执行计划变得赏心悦目.

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

  • 1.准备通用的sqlmon.sql脚本
  • 2.执行两条SQL,并确认各自的sql_id
  • 3.调用sqlmon脚本生成SQL Monitor Report
  • 4.对比两个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资源的实际消耗也可以非常直观的看到,二者有很大的差异.

最后此篇关于小知识:SQLMonitorReport的使用的文章就讲到这里了,如果你想了解更多关于小知识:SQLMonitorReport的使用的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com