在linux 系统中 用top命令查出CPU最高的SPID,再将SPID给存储过程,可以查出该进程的SQLTEXT

create or replace procedure pro_get_sqltext(pin_spid      in varchar2,
pout_sqltext out varchar2,
pout_sqltests out clob,
pout_sql_kill_sid out varchar2) is v_spid number := 0;
v_sid number := 0;
v_serial number := 0;
v_sqltext varchar2(4000) := '';
v_sqltexts clob:='';
v_sql_kill_sid varchar2(4000) :=''; begin begin
select SID, serial#
into v_sid, v_serial
from v$session
where paddr in (select addr from v$process where spid in (pin_spid)); v_sql_kill_sid:=' alter system kill session '||''''||v_sid||','||v_serial||''''||';';
pout_sql_kill_sid:=v_sql_kill_sid; exception
when NO_DATA_FOUND THEN
pout_sqltext := 'the sid do not be founded';
v_sql_kill_sid := 'the sid do not be founded';
end; begin
select q.SQL_TEXT,q.SQL_FULLTEXT
into v_sqltext,v_sqltexts
from v$sqlarea q
where exists (select *
from v$sqltext a
where exists (select sql_hash_value
from v$session b
where b.SID = v_sid
and a.HASH_VALUE = b.sql_hash_value)
and q.SQL_ID = a.SQL_ID); pout_sqltext := v_sqltext;
pout_sqltests:=v_sqltexts; exception
when NO_DATA_FOUND then
pout_sqltext := 'the SQL_TEXT do not be founded';
end;
commit; end pro_get_sqltext;

存储过程:通过操作系统进程查询SQL

SELECT s.SID,
p.SPID,
q.SQL_TEXT,
q.SQL_FULLTEXT,
s.LOGON_TIME,
s.STATUS,
q.CPU_TIME/1000/1000 "minutes",
q.ELAPSED_TIME/1000/1000 "minutes"
FROM v$process p, v$session s, v$sql q
where s.PADDR = p.ADDR
and q.SQL_ID = s.SQL_ID
and s.TYPE = 'USER'
and s.STATUS='ACTIVE'
;

查询SQL

分解SQL如下:

select s.SID,
s.serial#,
s.username,
s.osuser,
s.machine,
s.program,
s.process,
to_char(s.logon_time, 'yyyy/mm/dd hh24:mi:ss') logon,
p.spid
from v$session s,v$process p
where 1=1
and s.PADDR=p.ADDR
and P.spid in ('')
; select sql_text,a.SQL_ID
from v$sqltext a
where a.HASH_VALUE=(select sql_hash_value
from v$session b
where b.SID='')
order by piece ASC; select * from v$sqlarea q
where q.SQL_ID='akf0uyy10kgn9'
; --------------------- select *
from (select q.SQL_ID,q.SQL_TEXT, q.SQL_FULLTEXT,s.SID,s.SERIAL#
from v$sqlarea q,v$session s
where q.SQL_ID=s.SQL_ID
and LAST_ACTIVE_TIME>=to_date('2016-05-03 08:00:00','YYYY-MM-DD HH24:MI:SS')
AND INSTR(PARSING_SCHEMA_NAME,'SYS') <=0
order by cpu_time desc)
where rownum <= 15
order by rownum asc; alter system kill session '634,40971';

SQL通过SPID查询SQLTEXT

性能优化-查询最耗CPU的SESSION与SQL的更多相关文章

  1. 查询oracle比较慢的session和sql

    注:本文来源:sxhong   <查询oracle比较慢的session和sql> ---查询最慢的sql select * from ( select parsing_user_id,e ...

  2. SQL脚本--总耗CPU最多的前个SQL --平均耗CPU最多的前个SQL

    --总耗CPU最多的前个SQL SELECT TOP 20 total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数], qs.t ...

  3. MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY)

    在上一篇文章MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介中介绍了EXPLAIN语句,并举了一个慢查询例子:

  4. 性能优化之基础资源cpu&内存(JVM)

    本章主要介绍计算机的一些基础资源以及操作系统处理后的一些基础资源. 主要包括 cpu 内存 磁盘 网络 线程 本章会介绍这些资源的一些原理,介绍如何查看资源的数量,使用情况,对性能和整体计算机执行的一 ...

  5. 查询总耗CPU最多与平均耗CPU最多的SQL语句

    总耗CPU最多的前20个SQL total_worker_time AS [总消耗CPU 时间(ms)],execution_count [运行次数], qs.total_worker_time AS ...

  6. mysql 之 group by 性能优化 查询与统计分离

    背景介绍 记录共128W条!   SELECT cpe_id, COUNT(*) restarts FROM business_log WHERE operate_time>='2012-12- ...

  7. SqlServer性能优化 查询和索引优化(十二)

    查询优化的过程: 查询优化: 功能:分析语句后最终生成执行计划 分析:获取操作语句参数 索引选择 Join算法选择 创建测试的表: select * into EmployeeOp from Adve ...

  8. 记一次SQL性能优化,查询时间从4000ms优化到200ms.

    以下这句SQL是从PLM中获取代办工作流的.没优化前SQL语句执行一次大概4000ms(4秒). select ch.change_number changeNumber, f.text change ...

  9. SQL性能优化-查询条件与字段分开执行,union代替in与or,存储过程代替union

    PS:概要.背景.结语都是日常“装X”,可以跳过直接看优化历程 环境:SQL Server 2008 R2.阿里云RDS:辅助工具:SQL 审计 概要 一个订单列表分页查询功能,单从SQL性能来讲,从 ...

随机推荐

  1. CODEVS1380 没有上司的舞会 (树形DP)

    f[i,0] 表示 第i个人不参加舞会 f[i,1] 表示 第i个人参加舞会 f[i,1]=sigma(f[j,0])+v[i]   j 为 i 的孩子 f[i,1]=sigma(max(f[j,0] ...

  2. Pike的安装(Ubuntu环境)

    本机环境: Ubuntu 14.04 安装:sudo apt-get install pike7.8-dev 或者: sudo apt-get install pike7.8 官网下载源码 获取git ...

  3. 【avalon】createMap

    /** * Creates a new object without a prototype. This object is useful for lookup without having to * ...

  4. MySQL的Explain解释器的部分理解

    Explain 部分说明进行解释 (1) Extra列的Using Where 表示在进行过滤后在进行Where语句的过滤 (2) type为ref,直接按索引顺序返回,没有 Using fileso ...

  5. The implementation of Lua 5.0 阅读笔记(二)

    6 线程和协程 读完这篇文章我才意识到python的协程到底缺了什么,这个就是coroutine和semi-coroutine的区别了.区别就是,semi-coroutine只能返回(yield)到调 ...

  6. Linux netlink机制

    netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink ...

  7. 关于HTML的Element

    今天搞HTML的时候,发现了一些操作element的方法.先引用一篇. 1.document.getElementById(id);  2.document.getElementByTagName(t ...

  8. jQuery显示隐藏动态效果的几种写法

    <script type="text/javascript"> $(document).ready(function() {     /*$("#test1& ...

  9. 英语语法最终珍藏版笔记- 21it 用法小结

    it 用法小结 it 在英语中的意思较多,用法较广,现总结如下. 一.it作句子的真正主语 1.it 指前面已经提到过的人或事物,有时指心目中的或成为问题的人或事物,作真正主语. 例如: What’s ...

  10. ndk-build出错,错误以及解决办法如下

    用NDK编译jni目录下的文件了,我的系统是Ubuntu10.04,NDK版本是android-ndk-r7b. 切换到工程的jni目录下执行:ndk-build(ndk-build的路径已经添加到系 ...