千家信息网

Oracle如何查看历史TOP SQL

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章给大家分享的是有关Oracle如何查看历史TOP SQL的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Oracle 查看历史TOP SQL历史TOP SQL可以通过
千家信息网最后更新 2025年02月03日Oracle如何查看历史TOP SQL

这篇文章给大家分享的是有关Oracle如何查看历史TOP SQL的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Oracle 查看历史TOP SQL


历史TOP SQL可以通过AWR直接查看,
但是有时AWR信息显示不全,默认只显示TOP 10,
可以通过dba_hist_sqltext,dba_hist_sqlstat等查看更详细的信息;


---查看快照信息
---选择2018-06-14全天的快照6504-6528;
---conn chenjch/chenjch
select SNAP_ID,
DBID,
to_char(BEGIN_INTERVAL_TIME, 'yyyy-mm-dd hh34:mi:ss'),
to_char(END_INTERVAL_TIME, 'yyyy-mm-dd hh34:mi:ss'),
FLUSH_ELAPSED,
SNAP_LEVEL
from dba_hist_snapshot order by 1;

---1 查看2018-06-14全天SQL ordered by Elapsed Time
---时间单位默认microseconds
select a.sql_id,
a.module,
a.elap,
a.exec,
decode(a.exec, 0, to_number(null), (a.elap / a.exec)) elap_one,
b.sql_text
from dba_hist_sqltext b,
(select sql_id,
max(module) module,
sum(elapsed_time_delta) / 1000000 elap,
sum(executions_delta) exec
from dba_hist_sqlstat
where dbid = 1000919065
and instance_number = 1
and 6504 < snap_id
and snap_id <= 6528
group by sql_id) a
where a.sql_id = b.sql_id
order by elap desc;

---2 查看2018-06-14全天SQL ordered by Gets
---时间单位默认microseconds
select a.sql_id,
a.module,
a.bget,
decode(a.exec, 0, to_number(null), a.bget / a.exec) get_per_exec,
a.exec,
(a.cput/1000000)/elap*100 CPU,
a.elap,
b.sql_text
from dba_hist_sqltext b,
(select sql_id,
max(module) module,
sum(buffer_gets_delta) bget,
sum(executions_delta) exec,
sum(cpu_time_delta) cput,
sum(elapsed_time_delta) / 1000000 elap
from dba_hist_sqlstat
where dbid = 1000919065
and instance_number = 1
and 6504 < snap_id
and snap_id <= 6528
group by sql_id) a
where a.sql_id = b.sql_id
order by bget desc;

---3 查看2018-06-14全天SQL ordered by Reads
---时间单位默认microseconds
select a.sql_id,
a.module,
a.diskread,
a.exec,
decode(a.exec, 0, to_number(null), a.diskread / a.exec) diskread_one,
(a.cput/1000000)/elap*100 CPU,
a.elap,
b.sql_text
from dba_hist_sqltext b,
(select sql_id,
max(module) module,
sum(disk_reads_delta) diskread,
sum(executions_delta) exec,
sum(cpu_time_delta) cput,
sum(elapsed_time_delta) / 1000000 elap
from dba_hist_sqlstat
where dbid = 1000919065
and instance_number = 1
and 6504 < snap_id
and snap_id <= 6528
group by sql_id) a
where a.sql_id = b.sql_id
order by diskread desc;

感谢各位的阅读!关于"Oracle如何查看历史TOP SQL"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

历史 全天 信息 单位 时间 内容 可以通过 快照 更多 篇文章 不错 实用 文章 看吧 知识 参考 帮助 有关 选择 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海游戏软件开发的服务机构 软件开发行业一般干多久 大学网络安全的文章 软件开发连接器 tp获取一条数据库 网络安全找什么部门 应用服务器错误 软件开发业务系统是什么意思 电大计算机网络安全技术考试 地籍数据库标准第2部分自然资源 上海多功能网络技术怎么用 winrm服务器管理器 网络安全大赛为什么是游戏 阿拉德之怒服务器端客户端 广州移动dns服务器 软件开发大神们都在哪里集中 数据库db核心概念 将电脑主机设置为网络代理服务器 深圳软件开发人员的工资 无限火力哪个服务器最先开放 我国网络技术短板 山西电商软件开发平台 网络安全大会与左江科技 电脑免费加速服务器app 软件开发大神们都在哪里集中 我的世界花雨庭服务器怎么加模组 苏州办公系统软件开发公司 坪山区国内网络技术开发动态 开发微信小程序需要连数据库吗 软件开发工程师的伦理责任
0