当前位置: 首页 > news >正文

Oracle AWR报告中Load Profile源码

在这里插入图片描述
生成的Load Profile效果如图,下面是源代码:

SET VERIFY OFFDEFINE beg_snap = 1120;
DEFINE end_snap = 1121;COLUMN short_name FORMAT a30 HEADING 'Load Profile';
COLUMN per_sec    FORMAT 999,999,999.99 HEADING 'Per Second';
COLUMN per_tx     FORMAT 999,999,999.99 HEADING 'Per Transaction';SET PAGESIZE 200;WITH db_info AS (SELECT(SELECT dbid FROM v$database) AS db_id,(SELECT instance_number FROM v$instance) AS instance_numberFROM dual
),
st_list_mod AS (SELECT 'DB time' stat_name, 'DB Time(s):' short_name, 1 st_order FROM dualUNION ALLSELECT 'DB CPU' stat_name, 'DB CPU(s):' short_name, 2 st_order FROM dualUNION ALLSELECT 'background cpu time' stat_name, 'Background CPU(s):' short_name, 3 st_order FROM dual
),
st_list_sys AS (SELECT 'redo size' stat_name, 'Redo size (bytes):' short_name, 4 st_order FROM dualUNION ALLSELECT 'session logical reads' stat_name, 'Logical reads (blocks):' short_name, 5 st_order FROM dualUNION ALLSELECT 'db block changes' stat_name, 'Block changes:' short_name, 6 st_order FROM dualUNION ALLSELECT 'physical reads' stat_name, 'Physical reads: (blocks)' short_name, 7 st_order FROM dualUNION ALLSELECT 'physical writes' stat_name, 'Physical writes: (blocks)' short_name, 8 st_order FROM dualUNION ALLSELECT 'physical read IO requests' stat_name, 'Read IO requests:' short_name, 9 st_order FROM dualUNION ALLSELECT 'physical write IO requests' stat_name, 'Write IO requests:' short_name, 10 st_order FROM dualUNION ALLSELECT 'physical read bytes' stat_name, 'Read IO (MB):' short_name, 11 st_order FROM dualUNION ALLSELECT 'physical write bytes' stat_name, 'Write IO (MB):' short_name, 12 st_order FROM dualUNION ALLSELECT 'IM scan rows' stat_name, 'IM scan rows:' short_name, 13 st_order FROM dualUNION ALLSELECT 'session logical reads - IM' stat_name, 'Session Logical Reads IM:' short_name, 14 st_order FROM dualUNION ALLSELECT 'user calls' stat_name, 'User calls:' short_name, 15 st_order FROM dualUNION ALLSELECT 'parse count (total)' stat_name, 'Parses:' short_name, 16 st_order FROM dualUNION ALLSELECT 'parse count (hard)' stat_name, 'Hard Parses:' short_name, 17 st_order FROM dualUNION ALLSELECT 'logons cumulative' stat_name, 'Logons:' short_name, 19 st_order FROM dualUNION ALLSELECT 'user logons cumulative' stat_name, 'User Logons:' short_name, 20 st_order FROM dualUNION ALLSELECT 'execute count' stat_name, 'Executes:' short_name, 21 st_order FROM dualUNION ALLSELECT 'user rollbacks' stat_name, 'Rollbacks:' short_name, 22 st_order FROM dual
),
elp_time AS (SELECTEXTRACT(DAY FROM e.end_interval_time - b.end_interval_time) * 86400+ EXTRACT(HOUR FROM e.end_interval_time - b.end_interval_time) * 3600+ EXTRACT(MINUTE FROM e.end_interval_time - b.end_interval_time) * 60+ EXTRACT(SECOND FROM e.end_interval_time - b.end_interval_time) AS d_elp_timeFROM dba_hist_snapshot b, dba_hist_snapshot e, db_info snWHERE e.snap_id = &end_snapAND b.snap_id = &beg_snapAND b.dbid = sn.db_idAND b.instance_number = sn.instance_numberAND e.dbid = sn.db_idAND e.instance_number = sn.instance_number
),
e_trx_val AS (SELECT SUM(VALUE) AS end_valFROM dba_hist_sysstat e, db_info snWHERE e.snap_id = &end_snapAND e.dbid = sn.db_idAND e.instance_number = sn.instance_numberAND e.stat_name IN ('user rollbacks', 'user commits')
),
b_trx_val AS (SELECT SUM(VALUE) AS bgn_valFROM dba_hist_sysstat b, db_info snWHERE b.snap_id = &beg_snapAND b.dbid = sn.db_idAND b.instance_number = sn.instance_numberAND b.stat_name IN ('user rollbacks', 'user commits')
),
trx_val AS (SELECT end_val - bgn_val AS usr_valFROM e_trx_val, b_trx_val
),
beg_value_mod AS (SELECT /*+ use_hash(s) */b.short_name, a.stat_name, a.VALUE, b.st_orderFROM dba_hist_sys_time_model a, st_list_mod b, db_info snWHERE a.stat_name = b.stat_nameAND a.snap_id = &beg_snapAND a.dbid = sn.db_idAND a.instance_number = sn.instance_number
),
beg_value_sys AS (SELECT /*+ use_hash(s) */b.short_name, a.stat_name, a.VALUE, b.st_orderFROM dba_hist_sysstat a, st_list_sys b, db_info snWHERE a.stat_name = b.stat_nameAND a.snap_id = &beg_snapAND a.dbid = sn.db_idAND a.instance_number = sn.instance_number
),
beg_workarea AS (SELECT 'SQL Work Area (MB):' short_name, 'SQL Work Area (MB):' stat_name, BYTES_PROCESSED VALUE, 18 st_orderFROM wrh$_pga_target_advice a, db_info snWHERE a.PGA_TARGET_FACTOR = 1AND a.snap_id = &beg_snapAND a.dbid = sn.db_idAND a.instance_number = sn.instance_number
),
end_workarea AS (SELECT 'SQL Work Area (MB):' short_name, 'SQL Work Area (MB):' stat_name, BYTES_PROCESSED VALUE, 18 st_orderFROM wrh$_pga_target_advice a, db_info snWHERE a.PGA_TARGET_FACTOR = 1AND a.snap_id = &end_snapAND a.dbid = sn.db_idAND a.instance_number = sn.instance_number
),
end_value_mod AS (SELECT /*+ use_hash(s) */b.short_name, a.stat_name, a.VALUE, b.st_orderFROM dba_hist_sys_time_model a, st_list_mod b, db_info snWHERE a.stat_name = b.stat_nameAND a.snap_id = &end_snapAND a.dbid = sn.db_idAND a.instance_number = sn.instance_number
),
end_value_sys AS (SELECT /*+ use_hash(s) */b.short_name, a.stat_name, a.VALUE, b.st_orderFROM dba_hist_sysstat a, st_list_sys b, db_info snWHERE a.stat_name = b.stat_nameAND a.snap_id = &end_snapAND a.dbid = sn.db_idAND a.instance_number = sn.instance_number
)
SELECT short_name, per_sec, per_tx
FROM (SELECT e.short_name,ROUND((e.VALUE - b.VALUE) / 1000000 / (SELECT d_elp_time FROM elp_time), 2) AS per_sec,ROUND((e.VALUE - b.VALUE) / 1000000 / (SELECT usr_val FROM trx_val), 2) AS per_tx,e.st_orderFROM beg_value_mod b, end_value_mod eWHERE e.stat_name = b.stat_nameAND e.st_order = b.st_orderUNION ALLSELECT e.short_name,CASEWHEN e.st_order IN (11, 12) THENROUND((e.VALUE - b.VALUE) / (SELECT d_elp_time FROM elp_time) / 1024 / 1024, 2)ELSEROUND((e.VALUE - b.VALUE) / (SELECT d_elp_time FROM elp_time), 2)END AS per_sec,CASEWHEN e.st_order IN (11, 12) THENROUND((e.VALUE - b.VALUE) / (SELECT usr_val FROM trx_val) / 1024 / 1024, 2)ELSEROUND((e.VALUE - b.VALUE) / (SELECT usr_val FROM trx_val), 2)END AS per_tx,e.st_orderFROM beg_value_sys b, end_value_sys eWHERE e.stat_name = b.stat_nameAND e.st_order = b.st_orderUNION ALLSELECT e.short_name,ROUND((e.VALUE - b.VALUE) / 1024 / 1024 / (SELECT d_elp_time FROM elp_time), 2) AS per_sec,ROUND((e.VALUE - b.VALUE) / 1024 / 1024 / (SELECT usr_val FROM trx_val), 2) AS per_tx,e.st_orderFROM beg_workarea b, end_workarea eUNION ALLSELECT 'Transactions:',ROUND(usr_val / (SELECT d_elp_time FROM elp_time), 2),NULL,23FROM trx_val
)
ORDER BY st_order;

目前号主在certview.oracle.com网站上的证书清单截图。
在这里插入图片描述

关于号主,姚远:

  • Oracle ACE(Oracle和MySQL数据库方向)
  • 华为云最有价值专家
  • 《MySQL 8.0运维与优化》的作者
  • 拥有 Oracle 10g、12c和19c OCM等数十项数据库认证
  • 曾任IBM公司数据库部门经理
  • 20+年DBA经验,服务2万+客户
  • 精通C和Java,发明两项计算机专利
http://www.dtcms.com/a/477676.html

相关文章:

  • 电子商务网站开发的任务书企业文化心得体会
  • 溧阳网站开发kindeditor代码高亮 wordpress
  • CSS常见问题
  • nginx 负载均衡配置
  • 原生 iOS 开发全流程实战,Swift 技术栈、工程结构、自动化上传与上架发布指南
  • Apache开源许可证:深度解析与实践指南
  • Python Web开发——HTTP协议简介
  • 病理切片可解释性分析-细胞类型、核形态与细胞间相互作用
  • 【C语言】杨辉三角:数学之美与编程实现的完美结合
  • 盐城网站建设策划方案杭州企业求网站建设
  • 基于.NET Framework 4.0的串口通信
  • Mybatis Log Free插件使用
  • asp网站可运行jsp吗专做立体化的网站
  • angie未生成coredump文件
  • 【leetcode刷题007】leetcode116、117
  • 南昌网站推广¥做下拉去118cr如何做实验室网站
  • 从0开始搭建Vue3项目
  • 【知识】Linux将多条指令合并为一条执行
  • 将 MapReduce 程序打成 JAR 包并在 Linux 虚拟机的 Hadoop 集群上运行
  • 06_Miniconda零基础安装配置指南:打造高效的Python开发环境
  • 量子计算与AI融合:材料科学新突破!!
  • 徐州网站建设方案咨询外贸牛
  • 顶级 AI 模型横评:智能、性能与价格等方面全面对比
  • Vuex 详细用法(Vue2 和 Vue3)
  • 注册公司网站如何注册黑龙江公共资源交易网官网
  • 如何将iPhone上的HEIF图像下载到电脑
  • 欧洲宇航局使用Varjo XR头戴设备为宇航员提供虚拟现实空间站任务训练
  • iphone IOS3~IOS9游戏 旧iphone 单机游戏合集分享
  • 昂瑞微冲刺科创板:硬科技与资本市场的双向奔赴
  • 从入门到精通【Redis】Redis 典型应⽤ --- 缓存 (cache)