首页 > 数据库 >oracle 语句性能批量比较分析

oracle 语句性能批量比较分析

时间:2024-09-07 19:51:38浏览次数:11  
标签:语句 nvl 批量 executions delta oracle avg id trunc

语句如下:

                   
                          
with cur_data_a as (
select s.con_id,s.snap_id,
       ss.instance_number node,
       sql_id,
       plan_hash_value,
       nvl(executions_delta, 0) execs, 
       trunc((elapsed_time_delta /decode(nvl(executions_delta, 0), 0, 1, executions_delta)) / 1000,3) avg_etime_ms,
       trunc((buffer_gets_delta / decode(nvl(buffer_gets_delta, 0), 0, 1, executions_delta)),9) avg_lio,
       trunc((disk_reads_delta / decode(nvl(buffer_gets_delta, 0), 0, 1, executions_delta)),9) avg_pio,
       row_number() over (partition by s.con_id ,sql_id order by (elapsed_time_delta /decode(nvl(executions_delta, 0), 0, 1, executions_delta)) desc) r
  from dba_HIST_SQLSTAT S, dba_HIST_SNAPSHOT SS
 where ss.instance_number = S.instance_number
   and s.con_id=ss.con_id
   and s.snap_id=ss.snap_id
   and executions_delta > 0
   and begin_interval_time > sysdate-24/24 and begin_interval_time <  sysdate-22/24),   --也可以不通数据库比较
    cur_data_b as (
select s.con_id,s.snap_id,
       ss.instance_number node,
       sql_id,
       plan_hash_value,
       nvl(executions_delta, 0) execs, 
       trunc((elapsed_time_delta /decode(nvl(executions_delta, 0), 0, 1, executions_delta)) / 1000,3) avg_etime_ms,
       trunc((buffer_gets_delta / decode(nvl(buffer_gets_delta, 0), 0, 1, executions_delta)),9) avg_lio,
       trunc((disk_reads_delta / decode(nvl(buffer_gets_delta, 0), 0, 1, executions_delta)),9) avg_pio,
       row_number() over (partition by s.con_id ,sql_id order by (elapsed_time_delta /decode(nvl(executions_delta, 0), 0, 1, executions_delta)) desc) r
  from dba_HIST_SQLSTAT S, dba_HIST_SNAPSHOT SS
 where ss.instance_number = S.instance_number
   and s.con_id=ss.con_id
   and s.snap_id=ss.snap_id
   and executions_delta > 0
   and begin_interval_time > sysdate-20/24 and begin_interval_time <  sysdate-18/24)   --同上
select a.sql_id,
       a.plan_hash_value,b.plan_hash_value,case when a.plan_hash_value=b.plan_hash_value then 'same_hash_plan' else  'diff_hash_plan' end sql_plans,
       a.execs,b.execs,trunc(a.execs/b.execs,3) a_mod_b_execs,
       a.avg_etime_ms,b.avg_etime_ms,trunc(a.avg_etime_ms/(case when b.avg_etime_ms=0 then 1 else b.avg_etime_ms end),3) a_mod_b_avg_etime_ms,
       a.avg_lio,b.avg_lio,trunc(a.avg_lio/(case when b.avg_lio=0 then 1 else b.avg_lio end),3) a_mod_b_avg_lio,
       a.avg_pio,b.avg_pio,trunc(a.avg_pio/(case when b.avg_pio=0 then 1 else b.avg_pio end),3) a_mod_b_avg_pio
  from cur_data_a a,cur_data_b B
 where a.sql_id=b.sql_id
   and a.con_id=b.con_id
   and a.node=b.node
   and a.r=1
   and b.r=1
order by 1;       

查询案例:红色不服,平均执行性能下降部分(B相较于A)

 

标签:语句,nvl,批量,executions,delta,oracle,avg,id,trunc
From: https://www.cnblogs.com/notonlydba/p/18402080

相关文章

  • JPGC批量图片压缩神器!绝了,仅仅几百K!
    JPGC是一款专为图片批量处理设计的工具,它能够帮助用户快速将JPG/JPEG格式的图片进行压缩,以减小文件大小,同时尽量保持图片质量。这款软件特别适合处理数码相机拍摄的照片,压缩效果显著,文件大小可减少至原来的20%-30%左右。软件支持多线程操作,大幅提升了批量处理的效率,并且界面设......
  • Oracle数据库配置大页脚本
    编辑脚本su-oracle$vihugepages_settings.sh------------------------------------------#!/bin/bash##hugepages_settings.sh##Linuxbashscripttocomputevaluesforthe#recommendedHugePages/HugeTLBconfiguration#onOracleLinux##Note:Thisscri......
  • ArcMap批量附色操作,并保存mxd
    ArcMap批量附色操作,并保存mxd1、对单文件操作1、保存当前ArcMap中打开的shp文件为mxd文件打开label_shp_root中的任意一个shp文件夹保存成mxd文件2、对当前在arcmap中打开的shp文件应用color配色color配色是手动设置好一个shp文件夹的配色方案并保存成mxd文件应用color.......
  • Oracle数据库安装和配置:从入门到精通,手把手带你轻松搞定!
    大家好,今天我将为大家带来一篇关于Oracle数据库安装和配置的详细教程。Oracle数据库作为业界领先的关系型数据库管理系统,广泛应用于企业级应用。本文将带你一步步完成Oracle数据库的安装和配置,让你轻松掌握这一技能。一、准备工作在开始安装Oracle数据库之前,请确保你的计......
  • PARTII-Oracle数据访问-SQL
    7.SQL7.1.SQL简介7.1.1.SQL数据访问7.1.2.SQL标准7.2.SQL语句概述7.2.1.数据定义语言(DDL)7.2.2.数据操作语言(DML)7.2.3.事务控制语句7.2.4.会话控制语句7.2.5.7.3.优化器概述7.3.1.优化器用途7.3.2.优化器的组件7.3.3.访问路径7.3.4.优化器统计信息7.3......
  • PART1-Oracle关系数据结构-数据字典与动态性能视图
    6.数据字典与动态性能视图6.1.数据字典概述Oracle数据库的一个重要组成部分是其数据字典,这是一个只读的表集合,提供了有关数据库的管理元数据。数据字典包含如下信息:数据库中每个模式对象的定义,包括列的默认值和完整性约束信息分配给模式对象的空间量以及当前使用的量Oracl......
  • ansible roles使用场景,现在有多台机器需要批量加入k8s集群,怎么实现
    AnsibleRoles是一种用于组织和重用Ansible任务的结构化方式。它们特别适合于大型项目,能够简化配置管理和自动化部署。使用AnsibleRoles可以有效地管理多台机器的配置和状态。使用场景模块化管理:将相关的任务、变量和文件组织到一起,提高可维护性。复用性:不同项目可以复......
  • Oracle 19c数据库:Windows详细安装与配置指南
    Oracle19c的安装和配置是一个相对复杂但系统化的过程,本文演示如何在Windows系统下安装Oracle数据库,安装足够的磁盘空间(一般需要5~6个G,所以选剩余空间大的盘)。以下是一个详细的步骤指南,包括准备工作、安装过程、配置监听器和数据库测试等关键步骤:一、下载Oracle19c安装包访问Or......
  • 【shell脚本】使用firewall-cmd批量增加IP访问规则
    原创wsdhla想惑1025增加单个IP,并指定端口:firewall-cmd--permanent--zone=public--add-rich-rule="rulefamily="ipv4"sourceaddress="xxx.xx.xx.xxx"portprotocol="tcp"port="54321"accept"批量增加IP访问规则,使用脚本:batch-ad......
  • oracle锁的机制
    文章目录oracle锁的机制1.概括2.锁的模式3.锁查看死锁1.说明2.死锁产生条件3.解决死锁冲突4.事务和死锁预防总结oracle锁的机制1.概括1)说明锁是一种机制,多个事务同时访问一个数据库对象时,该机制可以实现对并发的控制2)oracle中锁的类别1.DDL锁:oracle自动......