超过阀值的sql语句会在awr中保存一段时间(默认是7天),可以通过dba_hist_sqlstat视图查询。

1.查询视图dba_hist_sqlstat

select snap_id, disk_reads_delta reads_delta,

executions_delta exec_delta, disk_reads_delta /decode

(executions_delta, 0, 1,executions_delta) rds_exec_ratio,

sql_id

from dba_hist_sqlstat

where disk_reads_delta > 100000

order by disk_reads_delta desc;

snap_id    reads_delta     exec_delta     rds_exec_ratio     sql_id

39           511106             1          511106           8h1qaqha580hh

29           216898             3         72299.33           d5bcqvumxr4y4

2.根据sql_id,在dba_hist_sqltext中查看相关sql语句

select command_type,sql_text

from dba_hist_sqltext

where sql_id='d5bcqvumxr4y4';

command_type          sql_text

3                    select count(id) from bom

注:command_type=3表示这是select命令,完整的command_type可以select * from audit_actions;

3.查看之前命令的执行计划

select * from table(dbms_xplan.display_awr('8h1qaqha580hh'));

========================================================================

补充几个有用的oracle dba_hist_*查询语句 :

1.耗cpu最多的10条语句

select *

from (select s.sql_id,

sum(s.cpu_time_delta),

sum(s.disk_reads_delta),

count(*)

from dba_hist_sqlstat s

group by s.sql_id

order by sum(s.cpu_time_delta) desc)

where rownum < 11;

2.最近7天,指定时间段(8:00-16:00)最消耗cpu的10条语句

select *

from (select s.sql_id,

sum(s.cpu_time_delta),

sum(s.disk_reads_delta),

count(*)

from dba_hist_sqlstat s, dba_hist_snapshot p

where 1 = 1

and s.snap_id = p.snap_id

and extract(hour from p.end_interval_time) between 8 and 16

and p.end_interval_time between sysdate - 7 and sysdate

group by s.sql_id

order by sum(s.cpu_time_delta) desc)

where rownum < 11;

3.可以进一步关联dba_hist_sqltext视图得到详细的sql语句

select * from

(select

s.sql_id, s.sql_text

sum(s.cpu_time_delta),

sum(s.disk_reads_delta),

count(*)

from dba_hist_sqlstat s, dba_hist_snapshot p, dba_hist_sqltext t

where 1=1

and s.snap_id = p.snap_id

and s.sql_id = t.sql_id

and extract(hour from p.end_interval_time) between 8 and 16

and t.command_type != 47 ╟- exclude pl/sql blocks from output

and p.end_interval_time between sysdate-7 and sysdate

group by s.sql_id

order by sum(s.cpu_time_delta) desc

)

where rownum < 11

4.分析指定sql语句各版本执行计划的资源消耗情况

select st.sql_id,

st.plan_hash_value,

sum(st.executions_delta) executions,

sum(st.rows_processed_delta) crows,

trunc(sum(st.cpu_time_delta) / 1000000 / 60) cpu_mins,

trunc(sum(st.elapsed_time_delta) / 1000000 / 60) ela_mins

from dba_hist_sqlstat st

where st.sql_id in (‘ &1′)

group by st.sql_id, st.plan_hash_value

order by st.sql_id, cpu_mins;

5.分析对比sql语句在不同执行计划中的执行情况

select st2.sql_id,

st2.plan_hash_value,

st_long.plan_hash_value  l_plan_hash_value,

st2.cpu_mins,

st_long.cpu_mins         l_cpu_mins,

st2.ela_mins,

st_long.ela_mins         l_ela_mins,

st2.executions,

st_long.executions       l_executions,

st2.crows,

st_long.crows            l_crows,

st2.cpu_mins_per_row,

st_long.cpu_mins_per_row l_cpu_mins_per_row

from (select st.sql_id,

st.plan_hash_value,

sum(st.executions_delta) executions,

sum(st.rows_processed_delta) crows,

trunc(sum(st.cpu_time_delta) / 1000000 / 60) cpu_mins,

decode(sum(st.rows_processed_delta),

0,

0,

(sum(st.cpu_time_delta) / 1000000 / 60) /

sum(st.rows_processed_delta)) cpu_mins_per_row,

trunc(sum(st.elapsed_time_delta) / 1000000 / 60) ela_mins

from dba_hist_sqlstat st

where 1 = 1

and (st.cpu_time_delta != 0 or st.rows_processed_delta != 0)

group by st.sql_id, st.plan_hash_value) st2,

(select st.sql_id,

st.plan_hash_value,

sum(st.executions_delta) executions,

sum(st.rows_processed_delta) crows,

trunc(sum(st.cpu_time_delta) / 1000000 / 60) cpu_mins,

decode(sum(st.rows_processed_delta),

0,

0,

(sum(st.cpu_time_delta) / 1000000 / 60) /

sum(st.rows_processed_delta)) cpu_mins_per_row,

trunc(sum(st.elapsed_time_delta) / 1000000 / 60) ela_mins

from dba_hist_sqlstat st

where 1 = 1

and (st.cpu_time_delta != 0 or st.rows_processed_delta != 0)

having trunc(sum(st.cpu_time_delta) / 1000000 / 60) > 10

group by st.sql_id, st.plan_hash_value) st_long

where 1 = 1

and st2.sql_id = st_long.sql_id

and st_long.cpu_mins_per_row /

decode(st2.cpu_mins_per_row, 0, 1, st2.cpu_mins_per_row) > 2

order by l_cpu_mins          desc,

st2.sql_id,

st_long.cpu_mins    desc,

st2.plan_hash_value;

oracle dba_hist_sql,从dba_hist_sqlstat视图中查找过去时段最占用资源的会话相关推荐

  1. oracle查看物化视图的索引,oracle – 物化视图中的域索引返回零行

    我有Oracle DB的问题 – 在物化视图上通过CONTAINS()搜索后,域索引返回零行.我看到物化视图充满了数据,我还使用过程ctx_ddl.sync_index()进行域索引同步. 什么有用: ...

  2. oracle停止job任务视图,【学习笔记】Oracle dba_datapump_jobs中not running作业的清除方法...

    天萃荷净 Oracle研究中心学习笔记:分享一篇关于Oracle数据库JOBS作业控制的文章.关于dba_datapump_jobs中的not running的作业的清除的方法. not runnin ...

  3. fileviewfinder.php,Laravel在FileViewFinder.php中查找视图的错误处理程序

    试图为Laravel实现自定义错误处理程序,以便当它被推送时,404的等比正常的红色和黑色屏幕更好.Laravel在FileViewFinder.php中查找视图的错误处理程序 我发现这其中的意义的作 ...

  4. oracle视图无法使用rowid,请问:无法从没有键值保存表的连接视图中选择 ROWID 这个是什么原因啊?...

    rowid 在join 视图的情况 select column_name, insertable, updatable, deletable from user_updatable_columns w ...

  5. 01219 oracle,ORA-01219: 数据库或可插入数据库未打开: 仅允许在固定表或视图中查询 oracle...

    一周没用过oracle,打开数据库的时候报错: 执行请求的操作时遇到错误: ORA-01219: 数据库或可插入数据库未打开: 仅允许在固定表或视图中查询 01219. 00000 - "d ...

  6. oracle 视图能建索引吗,Oracle视图中建立索引注意事项.doc

    Oracle视图中建立索引的注意事项 在视图上创建索引需要三个条件:一.视图必须绑定到架构.要做到这点,在?CREATE?VIEW?语句中,必须加上?WITH?SCHEMABINDING,如果是使用企 ...

  7. oracle 视图 其他用户,oracle创建视图中涉及到另外一个用户的表权限不足问题

    oracle创建视图中涉及到另外一个用户的表权限不足问题 在oracle中存储过程或者视图等对象创建时,如果涉及到另外一个用户的表,即使你已经grant dba了,也不行,必须显式地赋予查询权限.否则 ...

  8. oracle查视图字段类型,oracle,如何查看视图结构,获得视图中的字段名称、字段类型、字段长度等。...

    需要获得一个视图中的字段名称.字段类型.字段长度等信息,该如何编写sql语句. 通过select * from user_views可以获得给定用户下所有的视图名称了,但是没找到如何获取视图结构的解决 ...

  9. ORACLE动态sql在存储过程中出现表或视图不存在的解决方法

    ORACLE动态sql在存储过程中出现表或视图不存在的解决方法 CREATE OR REPLACE PROCEDURE P_test is strsql varchar2(2000); BEGIN   ...

  10. oracle中查找指定字符串位置

    oracle中查找指定字符串的位置,instr函数笔记: 1,instr(x,y); x:源字符串 y:目标字符串 select instr('abcdefgxyzaa','a') position ...

最新文章

  1. Scratch青少年编程能力等级测试模拟题(四级)
  2. d3设置line长度_使用d3画一些基本的图形
  3. python中变量的作用域有几种_Python中变量的作用域(variable scope)
  4. 【转】Java finally语句到底是在return之前还是之后执行?
  5. 轻量级Web渗透测试工具jSQL
  6. Qt中TCP服务端编程
  7. Java基础篇:static关键字
  8. [转载]基于TFS实践敏捷-修复Bug和执行代码评审
  9. ElasticSearch通配符 * 查询(英文检索)
  10. 25. 文件系统——源程序的编译安装(make,make install,ldd,ldconfig -v)
  11. jQuery 查找元素节点
  12. Lync 2013持久聊天迁移至Skype for Business
  13. 使用docker实现半自动化代码自动部署与回滚
  14. laravel 效率与java_让你的Laravel 应用运行速度飞起来!(利用PHP OPcache)
  15. mysql服务器版本手册_MySQL中文参考手册——与MySQL服务器连接
  16. 链路聚合的配置(思科)
  17. win10 教育版 激活方法
  18. 无标号有根树计数与无标号无根树计数
  19. Python+AI智能编辑人脸
  20. Emm_V4.2步进闭环驱动器说明书Rev1.1

热门文章

  1. 数字ic设计|ASIC芯片开发过程
  2. AtCoder Beginner Contest 275 A-D题解
  3. 梅西大学研究员创造出新3D打印系统 用螺杆作为进料机构挤出颗粒
  4. CSS 盒模型 基本术语解释
  5. win10电脑装USB CAN 1报错代码39
  6. 什么是光纤?光纤有哪些优势?
  7. Kubernetes的Startup, Liveness, Readiness深入探索
  8. 计算机电脑怎么开热点,图解电脑怎么开热点wifi——广传攻柴
  9. Qt 菜单栏、工具栏、状态栏、浮动窗口、核心部件
  10. 深信服超融合HCI初级笔试题目(三套)