oracle 实时查询最耗CPU资源的SQL语句

1. 先通过top命令查看产用资源较多的spid号

2.查询当前耗时的会话ID,用户名,sqlID等: select sid,serial#,machine,username,program,sql_hash_value,sql_id,        to_char(logon_time,‘yyyy/mm/dd hh24:mi:ss‘) as login_time from v$session where paddr in (select addr from v$process where spid in (‘5648612‘,‘256523‘));

3. 如果上一步sql_id或者 hash_value不为空,则可用v$sqlarea查出当前正在使用的sql select sql_text   from v$sqltext_with_newlines   where hash_value = &hash_value order by piece;
select * from v$sql where sql_id=‘‘

---CSDN 网友提供的----

SELECT sql_text   FROM v$sqltext a WHERE (a.hash_value, a.address) IN        (SELECT DECODE(sql_hash_value, 0, prev_hash_value, sql_hash_value),                DECODE(sql_hash_value, 0, prev_sql_addr, sql_address)           FROM v$session b          WHERE b.paddr = (SELECT addr FROM v$process c WHERE c.spid = ‘&pid‘)) ORDER BY piece ASC

oracle 实时查询最耗CPU资源的SQL语句,布布扣,bubuko.com

时间: 2024-08-05 15:39:37

oracle 实时查询最耗CPU资源的SQL语句的相关文章

Oracle 查询并删除重复记录的SQL语句

查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select   peopleId from   people group by   peopleId having count(peopleId) > 1) 2.删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录delete from people where

Oracle 学习之性能优化(一)SQL语句处理

当向Oracle提交一个sql命令时,Oracle到底做了哪些事情?对这个问题有很好的理解,能帮助你更好的分析sql语句的优化. 执行一条sql语句从开始到结束,需要经历4个步骤: 分析--对提交的语句进行语法分析.语义分析和共享池检查. 优化--生成一个可在数据库中用来执行语句的最佳计划 行资源生成--为会话取得最佳计划并建立执行计划 语句执行--完成实际执行查询的行资源生成步骤的输出.对应DDL来说,这一步就是语句的结   束.对应SELECT来说,这一步是取数据的开始. 以上步骤,有的是可

oracle之 v$sql_monitor 监视正在运行的SQL语句的统计信息

11g中引入了新的动态性能视图V$SQL_MONITOR,该视图用以显示Oracle监视的SQL语句信息.SQL监视会对那些并行执行或者消耗5秒以上cpu时间或I/O时间的SQL语句自动启动,同时在V$SQL_MONITOR视图中产生一条记录.当SQL语句正在执行,V$SQL_MONITOR视图中的统计信息将被实时刷新,频率为每秒1次.SQL语句执行完成后,监视信息将不会被立即删除,Oracle会保证相关记录保存一分钟(由参数_sqlmon_recycle_time所控制,默认为60s),最终这

Sql Server 优化 SQL 查询:如何写出高性能SQL语句

1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 “全表扫描”方式. 可见,执行计划并不是固定的,它是“个性化的”.产生一个正确的“执行计划”有两点很重要: (1)    SQL语句是否清晰地告诉查询优化器它想干什么? (2)

优化SQL查询:如何写出高性能SQL语句

1.首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句,如果用来从一个10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用“全表扫描”方式. 可见,执行计划并不是固定的,它是“个性化的“.产生一个正确的”执行计划“有两点很重要: (1)SQL语句是否清晰地告诉查询优化器它想干什么? (2)查询优化器得到

Oracle行转列、列转行的Sql语句总结(转)

多行转字符串 这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_userselect id||username str from app_user 字符串转多列 实际上就是拆分字符串的问题,可以使用 substr.instr.regexp_substr函数方式 字符串转多行 使用union all函数等方式 wm_concat函数 首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以",&quo

Oracle 行转列、列转行 的Sql语句总结

参考文章:http://blog.csdn.net/tianlesoftware/article/details/4704858 多行转字符串 这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_user select id||username str from app_user 字符串转多列 实际上就是拆分字符串的问题,可以使用 substr.instr.regexp_substr函数方式 字符串转多行 使用union

Oracle行转列、列转行的Sql语句总结

多行转字符串 这个比较简单,用||或concat函数可以实现 ?SQL Code? 12 ? select?concat(id,username)?str?from?app_userselect?id||username?str?from?app_user 字符串转多列 实际上就是拆分字符串的问题,可以使用 substr.instr.regexp_substr函数方式 字符串转多行 使用union all函数等方式 wm_concat函数 首先让我们来看看这个神奇的函数wm_concat(列名)

oracle处理考勤时间,拆分考勤时间段的sql语句

最近一直在用mysql数据库做云项目,有段时间没有接触oracle了,昨天有朋友叫我帮忙用oracle处理一个考勤记录的需求,我在考虑如何尽量精简实现上面花了一段时间.于是把这个实现做个记录. 需求如下: rownum为奇数的为进厂时间,偶数的为离场时间 第一个奇数行的时间被第一个偶数行相减,以此类推 将上面两步产生的时间结果集相加得出总时间作为当天考勤时间 最终能和别的表联合起来形成这样的展示: 人员 日期 工时 入厂时间 出厂时间 张三 2015/6/18 9小时30分钟 8:00:00 1