awr_plan_change脚本中平均执行时间不正确浅析?

这篇具有很好参考价值的文章主要介绍了awr_plan_change脚本中平均执行时间不正确浅析?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

awr_plan_change.sql脚本是Kerry Osborne的一个脚本,这个脚本也是我非常喜欢并且经常使用的一个脚本。脚本如下所示

set lines 155
col execs for 999,999,999
col avg_etime for 999,999.999
col avg_lio for 999,999,999.9
col sql_id for a16
col begin_interval_time for a30
col node for 99999
break on plan_hash_value on startup_time skip 1
select ss.snap_id
     , ss.instance_number node
     , begin_interval_time
     , sql_id
     , plan_hash_value
     , nvl(executions_delta,0) execs
     ,(elapsed_time_delta/decode(nvl(executions_delta,0),0,1,executions_delta))/1000000 avg_etime
     ,(buffer_gets_delta/decode(nvl(buffer_gets_delta,0),0,1,executions_delta)) avg_lio
from DBA_HIST_SQLSTAT S, DBA_HIST_SNAPSHOT SS
where sql_id = nvl('&sql_id','799tsyjq9p1r6')
and ss.snap_id = S.snap_id
and ss.instance_number = S.instance_number
and executions_delta > 0
order by 123
/

正常情况下,这个脚本并没有什么问题,但是这个脚本在某些场景下,它计算SQL语句的平均执行时间(avg_etime)是有问题的(avg_etime在有些场景是不准确的)。下面以一个案例来简单分析一下。如下所示,SQL_ID=799tsyjq9p1r6是数据仓库中的一个SQL语句,使用awr_plan_change.sql分析这个SQL,发现它的平均执行时间(AVG_ETIME)有非常大的波动,如下所示,我们以2023-10-04为起点,如下所示,你会发现它的平均执行时间多的时候为1559.825秒,短的时侯为25.080秒,这个SQL并没有使用绑定变量,它的执行计划从2023-10-04号到2023-10-08号没有变化过(PLAN_HASH_VALUE没有变化),那么这个SQL的平均执行时间为什么有这么大的波动呢?

awr_plan_change脚本中平均执行时间不正确浅析?

其实,确切来说,就是awr_plan_change.sql中计算的平均执行时间(AVG_ETIME)有误,首先要说明的是数据库的快照间隔(SNAP_INTERVAL)是30分钟,而这个SQL的执行时间超过AWR的快照间隔了。这个SQL的开始执行时间和结束时间,跨越了几个snap_id,我们可以使用sqlstat.sql分析如下所示:

DBW1:SYS>select
  2  sql_id,
  3  plan_hash_value,
  4  TO_CHAR(BEGIN_INTERVAL_TIME,'yyyy-mm-dd hh24:mi:ss'AS BEGIN_INTERVAL_TIME,
  5  TO_CHAR(END_INTERVAL_TIME,'yyyy-mm-dd hh24:mi:ss'AS END_INTERVAL_TIME,
  6  executions_delta,
  7  ROUND(ELAPSED_TIME_DELTA/(nonzeroexecutions*1000000),1"Elapsed Average",
  8  ROUND(CPU_TIME_DELTA/(nonzeroexecutions*1000000),1"CPU Average",
  9  ROUND(IOWAIT_DELTA/(nonzeroexecutions*1000000),1"IO Average",
 10  ROUND(CLWAIT_DELTA/(nonzeroexecutions*1000000),1"Cluster Average",
 11  ROUND(APWAIT_DELTA/(nonzeroexecutions*1000000),1"Application Average",
 12  ROUND(CCWAIT_DELTA/(nonzeroexecutions*1000000),1"Concurrency Average",
 13  BUFFER_GETS_DELTA/nonzeroexecutions "Average buffer gets",
 14  DISK_READS_DELTA/nonzeroexecutions "Average disk reads",
 15  trunc(PHYSICAL_WRITE_BYTES_DELTA/(1024*1024*nonzeroexecutions)) "Average disk write megabytes",
 16  ROWS_PROCESSED_DELTA/nonzeroexecutions "Average rows processed"
 17  from
 18  (select
 19  ss.snap_id,
 20  ss.sql_id,
 21  ss.plan_hash_value,
 22  sn.BEGIN_INTERVAL_TIME,
 23  sn.END_INTERVAL_TIME,
 24  ss.executions_delta,
 25  case ss.executions_delta when 0 then 1 else ss.executions_delta end nonzeroexecutions,
 26  ELAPSED_TIME_DELTA,
 27  CPU_TIME_DELTA,
 28  IOWAIT_DELTA,
 29  CLWAIT_DELTA,
 30  APWAIT_DELTA,
 31  CCWAIT_DELTA,
 32  BUFFER_GETS_DELTA,
 33  DISK_READS_DELTA,
 34  PHYSICAL_WRITE_BYTES_DELTA,
 35  ROWS_PROCESSED_DELTA
 36  from DBA_HIST_SQLSTAT ss,DBA_HIST_SNAPSHOT sn
 37  where ss.sql_id = '&sql_id'
 38  and ss.snap_id=sn.snap_id
 39  and ss.INSTANCE_NUMBER=sn.INSTANCE_NUMBER)
 40  where ELAPSED_TIME_DELTA > 0
 41  order by snap_id,sql_id;
Enter value for sql_id: 799tsyjq9p1r6

SQL_ID             PLAN_HASH_VALUE BEGIN_INTERVAL_TIME                                       END_INTERVAL_TIME         EXECUTIONS_DELTA Elapsed Average CPU Average IO Average Cluster Average Application Average Concurrency Average Average buffer gets Average disk reads Average disk write megabytes Average rows processed
------------------ --------------- --------------------------------------------------------- ------------------------- ---------------- --------------- ----------- ---------- --------------- ------------------- ------------------- ------------------- ------------------ ---------------------------- ----------------------
799tsyjq9p1r6           1879238228 2023-09-24 14:00:37                                       2023-09-24 14:30:44                      0          1312.3        56.3     1283.1               0                   0                   0             2983520             621742                            0                      0
799tsyjq9p1r6           1879238228 2023-09-24 14:30:44                                       2023-09-24 15:00:50                      1           968.7        33.2        950               0                   0                  .1             2522751             328654                            0                  31635
799tsyjq9p1r6           1879238228 2023-09-25 14:30:16                                       2023-09-25 15:00:23                      0          1581.8        52.1     1556.6               0                   0                   0             2216777             523756                            0                      0
799tsyjq9p1r6           1879238228 2023-09-25 15:00:23                                       2023-09-25 15:30:30                      1          1238.1        49.7     1211.7               0                   0                   0             2457976             547253                            0                  26778
799tsyjq9p1r6           1879238228 2023-09-26 14:00:40                                       2023-09-26 14:30:47                      0             182         6.6      178.9               0                   0                   0              249644              63126                            0                      0
799tsyjq9p1r6           1879238228 2023-09-26 14:30:47                                       2023-09-26 15:00:54                      0          1806.2        61.5     1775.5               0                   0                   0             2761065             665285                            0                      0
799tsyjq9p1r6           1879238228 2023-09-26 15:00:54                                       2023-09-26 15:30:01                      1           421.8        18.2      411.3               0                   0                  .1             1123432             243842                            0                  23641
799tsyjq9p1r6           1879238228 2023-09-27 14:00:09                                       2023-09-27 14:30:16                      0           922.4        33.9      905.8               0                   0                   0             1579540             335758                            0                      0
799tsyjq9p1r6           1879238228 2023-09-27 14:30:16                                       2023-09-27 15:00:23                      1          1753.4          58     1722.9               0                   0                   0             3440756             593153                            0                  28687
799tsyjq9p1r6           1879238228 2023-09-28 14:00:39                                       2023-09-28 14:30:46                      0           948.9        32.6      933.9               0                   0                   0             1237907             301664                            0                      0
799tsyjq9p1r6           1879238228 2023-09-28 14:30:46                                       2023-09-28 15:00:53                      1          1794.8        61.5     1764.1               0                   0                   0             2946573             637203                            0                  23879
799tsyjq9p1r6           1879238228 2023-09-29 14:00:10                                       2023-09-29 14:30:18                      1           337.1        21.6      323.9               0                   0                   0             1693956             273991                            0                   9581
799tsyjq9p1r6           1879238228 2023-09-30 14:00:39                                       2023-09-30 14:30:46                      0          1034.6        39.3     1015.1               0                   0                   0             1833993             405250                            0                      0
799tsyjq9p1r6           1879238228 2023-09-30 14:30:46                                       2023-09-30 15:00:53                      0            1804        57.5     1771.7               0                   0                   0             4533708             541639                            0                      0
799tsyjq9p1r6           1879238228 2023-09-30 15:00:53                                       2023-09-30 15:31:00                      1            72.9         3.7       70.5               0                   0                   0              369115              31273                            0                  38389
799tsyjq9p1r6           1879238228 2023-10-01 14:00:09                                       2023-10-01 14:30:17                      0           118.9         4.3      116.8               0                   0                   0              179510              44841                            0                      0
799tsyjq9p1r6           1879238228 2023-10-01 14:30:17                                       2023-10-01 15:00:24                      0          1806.4        53.9     1780.9               0                   0                   0             2070104             543732                            0                      0
799tsyjq9p1r6           1879238228 2023-10-01 15:00:24                                       2023-10-01 15:30:31                      0          1806.2        56.2       1779               0                   0                  .1             2234512             470020                            0                      0
799tsyjq9p1r6           1879238228 2023-10-01 15:30:31                                       2023-10-01 16:00:38                      1          1027.9        33.4     1010.2               0                   0                   0             1920920             339045                            0                  36342
799tsyjq9p1r6           1879238228 2023-10-02 14:00:40                                       2023-10-02 14:30:47                      0          1447.3        46.4     1426.4               0                   0                   0             1699747             415567                            0                      0
799tsyjq9p1r6           1879238228 2023-10-02 14:30:47                                       2023-10-02 15:00:54                      0            1806        59.1     1775.6               0                   0                  .1             3280821             595508                            0                      0
799tsyjq9p1r6           1879238228 2023-10-02 15:00:54                                       2023-10-02 15:30:01                      1           221.6         9.1        216               0                   0                  .1              742730              96869                            0                  32297
799tsyjq9p1r6           1879238228 2023-10-03 14:00:10                                       2023-10-03 14:30:17                      0           720.1        26.9      706.8               0                   0                   0             1153872             262211                            0                      0
799tsyjq9p1r6           1879238228 2023-10-03 14:30:17                                       2023-10-03 15:00:24                      1          1399.9          47     1372.8               0                   0                   0             3553183             437388                            0                  26545
799tsyjq9p1r6           1879238228 2023-10-04 14:00:38                                       2023-10-04 14:30:45                      0          1146.6        47.3     1121.8               0                   0                   0             2332277             545996                            0                      0
799tsyjq9p1r6           1879238228 2023-10-04 14:30:45                                       2023-10-04 15:00:51                      1          1042.1        36.9     1020.6               0                   0                   0             2892948             368538                            0                  29540
799tsyjq9p1r6           1879238228 2023-10-05 14:00:05                                       2023-10-05 14:30:12                      0           939.4        35.5      921.7               0                   0                   0             1556583             360616                            0                      0
799tsyjq9p1r6           1879238228 2023-10-05 14:30:12                                       2023-10-05 15:00:19                      0          1802.9        59.5     1768.4               0                   0                  .1             4668380             553976                            0                      0
799tsyjq9p1r6           1879238228 2023-10-05 15:00:19                                       2023-10-05 15:30:26                      1            25.1         1.3       24.2               0                   0                   0              103952              11067                            0                  35528
799tsyjq9p1r6           1879238228 2023-10-06 14:00:31                                       2023-10-06 14:30:38                      0          1059.1          44     1036.6               0                   0                   0             2127809             447816                            0                      0
799tsyjq9p1r6           1879238228 2023-10-06 14:30:38                                       2023-10-06 15:00:45                      1          1559.8        60.8     1524.6               0                   0                   0             4663034             562076                            0                  38124
799tsyjq9p1r6           1879238228 2023-10-07 14:00:58                                       2023-10-07 14:30:05                      0          1101.6        47.7     1077.5               0                   0                   0             2064020             547169                            0                      0
799tsyjq9p1r6           1879238228 2023-10-07 14:30:05                                       2023-10-07 15:00:12                      0          1806.2        66.7     1771.2               0                   0                   0             3817811             694678                            0                      0
799tsyjq9p1r6           1879238228 2023-10-07 15:00:12                                       2023-10-07 15:30:19                      1            88.3         3.3       86.3               0                   0                   0              244627              25431                            0                  34400
799tsyjq9p1r6           1879238228 2023-10-08 14:30:31                                       2023-10-08 15:00:38                      0            1638        42.5     1617.2               0                   0                   0             1728020             412431                            0                      0
799tsyjq9p1r6           1879238228 2023-10-08 15:00:38                                       2023-10-08 15:30:45                      0          1808.6        57.1     1780.4               0                   0                   0             2167202             498306                            0                      0
799tsyjq9p1r6           1879238228 2023-10-08 15:30:45                                       2023-10-08 16:00:52                      1          1187.7        32.4     1171.5               0                   0                   0             1682580             297268                            0                  31062

可以清晰的看到2023-10-07号,这个SQL的执行时间在快照2023-10-07 14:00和2023-10-07 15:00AWR快照区间内完成,而在14:00-14:30, 14:30-15:00内,SQL没有执行完成,所以它的执行次数为0,在15:00-15:30这个快照区间内,它的ELAPSED_TIME_DELTA为88.3,所以这样统计时,它的"Elapsed Average"(它等价于awr_plan_change.sql脚本中的AVG_ETIME)为88.3秒,而这个SQL的实际执行时间为1101.6+ 1806.2+ 88.3 ~= 2996.1秒,而2023-10-08号的执行时长为1638 +1808.6 + 1187.7~= 4634.3秒。那么awr_plan_change.sql统计出错的原因是啥呢?因为脚本里面有一个条件:and executions_delta > 0,它排除了那些正在执行,但是快照间隔内没有执行完的记录数据(因为这些记录的executions_delta为0),正确的做法是要汇总这些数据然后除以执行次数才是SQL正在的平均执行时间。所以awr_plan_change.sql对于哪些执行时间超过AWR采样间隔的SQL,它的统计数据就会不正确。

其实DBA_HIST_SQLSTAT的elapsed_time_delta这个字段,它统计的是AWR采样间隔内,SQL语句(执行一次或多次)的执行时间,也就是说它是这个采样间隔内差值,一个变化值,而不是SQL语句的完整累加值。Delta本身就是第4个希腊字母,其实delta也表示微积分中的曲率,在数学和科学中表示单位时间内,指标的的变化量。所以,你分析AWR报告时,也要注意一个问题,如果你生成AWR报告的快照开始时间和结束时间不能覆盖SQL语句的开始执行时间和结束执行时间,那么AWR报告中的SQL语句的Elapsed Time per Exec (s)也是不正确的。这个也是很多人没有特别留意的地方。文章来源地址https://www.toymoban.com/news/detail-710537.html

到了这里,关于awr_plan_change脚本中平均执行时间不正确浅析?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 时间序列分析--移动平均法预测模型

          时间序列是按时间顺序排列的、随时间变化且相互关联的数据序列。分析时间序 列的方法构成数据分析的一个重要领域,即时间序列分析。       如果在预测时间范围以内,无突然变动且随机变动的方差较小,并且有理由认为过去和现在的演变趋势将继续发展到未来

    2023年04月18日
    浏览(37)
  • 如何通过ELK统计一段时间内接口被调用次数及平均响应时间

    ELK,全名是: Elasticsearch,有了它,我们可以很方便地进行日志查询。 那么,假如想要统计某个服务的接口在某段时间内的被调用次数平均响应时间,类似于下面的效果: 那应该怎么做呢? 步骤如下, 1、打开ELK地址,找到Dev Tools 2、点击Dev Tools,输入执行内容 说明: 注意

    2024年02月12日
    浏览(55)
  • 时间序列预测 | Matlab自回归差分移动平均模型ARIMA时间序列预测

    效果一览 文章概述 时间序列预测 | Matlab自回归差分移动平均模型ARIMA时间序列预测,单列数据输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码

    2024年02月13日
    浏览(50)
  • 共享单车之数据分析-统计共享单车每天的平均使用时间

    第1关:统计共享单车每天的平均使用时间 任务描述 相关知识 如何配置Hbase的MapReduce类 如何使用Hbase的MapReduce进行数据分析 编程要求 测试说明 任务描述 本关任务:使用 Hbase 的 MapReduce 对已经存在 Hbase 的共享单车运行数据进行分析,统计共享单车每天的平均使用时间,其中

    2024年02月03日
    浏览(58)
  • 时序预测 | MATLAB实现ARMA自回归移动平均模型时间序列预测

    预测效果 基本介绍 MATLAB实现ARMA时间序列预测(完整源码和数据) 本程序基于MATLAB的armax函数实现arma时间序列预测; 实现了模型趋势分析、序列平稳化、AIC准则模型参数识别与定阶、预测结果与误差分析过程,逻辑清晰。 数据为144个月的数据集,周期为一年,最终实现历史

    2024年02月07日
    浏览(61)
  • 混沌演练状态下,如何降低应用的MTTR(平均恢复时间) | 京东云技术团队

    在企业业务领域,锦礼是针对福利、营销、激励等员工采购场景的一站式解决方案,包含面向员工、会员等弹性激励SAAS平台。由于其直接面向公司全体员工,其服务的高可用尤其重要,本文将介绍锦礼商城大促前夕,通过混沌工程实战演习,降低应用的MTTR。 MTTR(平均恢复时

    2024年02月10日
    浏览(43)
  • 【数据分析面试】10. 计算平均通勤时间(SQL:timestampdiff() 和datediff()区别)

    假设你在Uber工作。 rides 表包含了关于Uber用户在美国各地的行程信息。 编写一个查询,以获取纽约(NY)每位通勤者的平均通勤时间(以分钟为单位),以及纽约所有通勤者的平均通勤时间(以分钟为单位)。 示例: 输入: rides 表 列名 类型 id INTEGER commuter_id INTEGER start_dt

    2024年04月09日
    浏览(88)
  • 通讯协议034——全网独有的OPC HDA知识一之聚合(三)时间加权平均

    本文简单介绍OPC HDA规范的基本概念,更多通信资源请登录网信智汇(wangxinzhihui.com)。 本节旨在详细说明HDA聚合的要求和性能。其目的是使HDA聚合标准化,以便HDA客户端能够可靠地预测聚合计算的结果并理解其含义。如果用户需要聚合中的自定义功能,则应将这些聚合编写为自

    2024年02月13日
    浏览(30)
  • Linux Crontab定时执行脚本不执行,但手动执行脚本正常原因及解决方案

    使用rsync作为备份工具,实现电子文件的增量备份,写了一个脚本,在linux命令行调用 sh shell.sh进行测试,成功实现了电子文件的备份功能,然后在Crontab增加了定时任务,每天凌晨1点进行同步。 后来发现文件同步失败了,后来排查发现应该是脚本虽然被执行,但是没有成功,

    2024年02月08日
    浏览(54)
  • 时序预测 | Python实现ARIMA-LSTM差分自回归移动平均模型结合长短期记忆神经网络时间序列预测

    预测效果 基本介绍 时序预测 | Python实现ARIMA-LSTM差分自回归移动平均模型结合长短期记忆神经网络时间序列预测 直接替换数据即可用 适合新手小白 附赠案例数据 可直接运行 程序设计 完整程序和数据下载方式私信博主回复: Python实现ARIMA-LSTM差分自回归移动平均模型结合长

    2024年02月07日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包