问题描述
嗨,
我正在使用以下查询从dba_hist_active_sess_history中获取详细信息,该详细信息与过去90天内在一天中的特定小时发生的特定等待事件相匹配:
从dba_hist_active_sess_history中选择USER_ID,程序,机器,其中event = 'db文件分散读取 '并提取 (从强制转换中提取小时 (作为时间戳的样本时间))= 15和样本时间> SYSDATE - 90;
这个查询需要超过20分钟才能执行,这是巨大的。你能帮忙把它降到最低吗?
查询dba_hist_active_sess_history的原因 => 我们正在对等待事件的频率及其与出现最多的一天中的时间的关联进行一些数据分析,并试图找到我们成功的模式。现在,我们正在尝试使用上述查询获取有关该小时的等待事件的特定详细信息。
我正在使用以下查询从dba_hist_active_sess_history中获取详细信息,该详细信息与过去90天内在一天中的特定小时发生的特定等待事件相匹配:
从dba_hist_active_sess_history中选择USER_ID,程序,机器,其中event = 'db文件分散读取 '并提取 (从强制转换中提取小时 (作为时间戳的样本时间))= 15和样本时间> SYSDATE - 90;
这个查询需要超过20分钟才能执行,这是巨大的。你能帮忙把它降到最低吗?
查询dba_hist_active_sess_history的原因 => 我们正在对等待事件的频率及其与出现最多的一天中的时间的关联进行一些数据分析,并试图找到我们成功的模式。现在,我们正在尝试使用上述查询获取有关该小时的等待事件的特定详细信息。
专家解答
基础表主要由DBID和SNAP_ID驱动,因此您可以通过较小的初始查询来利用它,例如
* 可能 * 更好-这取决于您拥有多少数据,正在检索多少数据等
SQL> select dbid, min(snap_id) 2 from dba_hist_snapshot 3 where begin_interval_time > sysdate-90 4 group by dbid; DBID MIN(SNAP_ID) ---------- ------------ 872342268 9082 -- -- use that in the true query -- SQL> set autotrace traceonly explain SQL> select a.USER_ID, a.PROGRAM, a.MACHINE 2 from dba_hist_active_sess_history a 3 where a.event='db file scattered read' 4 and extract(hour from cast(a.sample_time as timestamp))= 15 5 and a.sample_time > SYSDATE - 90 6 and a.snap_id >=9082 7 and a.dbid = 872342268; Execution Plan ---------------------------------------------------------- Plan hash value: 318490875 ------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | ------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 102 | |* 1 | FILTER | | | | | 2 | NESTED LOOPS OUTER | | 1 | 102 | | 3 | PARTITION RANGE ITERATOR | | 1 | 62 | |* 4 | TABLE ACCESS BY LOCAL INDEX ROWID BATCHED| WRH$_ACTIVE_SESSION_HISTORY | 1 | 62 | |* 5 | INDEX RANGE SCAN | WRH$_ACTIVE_SESSION_HISTORY_PK | 1 | | | 6 | TABLE ACCESS BY INDEX ROWID BATCHED | WRH$_EVENT_NAME | 1 | 40 | |* 7 | INDEX RANGE SCAN | WRH$_EVENT_NAME_PK | 1 | | -------------------------------------------------------------------------------------------------------
* 可能 * 更好-这取决于您拥有多少数据,正在检索多少数据等
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
618次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
609次阅读
2025-04-15 17:24:06
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
502次阅读
2025-04-08 09:12:48
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
486次阅读
2025-04-20 10:07:02
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
468次阅读
2025-04-22 00:20:37
Oracle 19c RAC更换IP实战,运维必看!
szrsu
446次阅读
2025-04-08 23:57:08
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
441次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
435次阅读
2025-04-17 17:02:24
一页概览:Oracle GoldenGate
甲骨文云技术
430次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
378次阅读
2025-04-17 09:30:30