性能优化-查询最耗CPU的SESSION与SQL
在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的更多相关文章
- 查询oracle比较慢的session和sql
注:本文来源:sxhong <查询oracle比较慢的session和sql> ---查询最慢的sql select * from ( select parsing_user_id,e ...
- SQL脚本--总耗CPU最多的前个SQL --平均耗CPU最多的前个SQL
--总耗CPU最多的前个SQL SELECT TOP 20 total_worker_time/1000 AS [总消耗CPU 时间(ms)],execution_count [运行次数], qs.t ...
- MySQL查询语句执行过程及性能优化-查询过程及优化方法(JOIN/ORDER BY)
在上一篇文章MySQL查询语句执行过程及性能优化-基本概念和EXPLAIN语句简介中介绍了EXPLAIN语句,并举了一个慢查询例子:
- 性能优化之基础资源cpu&内存(JVM)
本章主要介绍计算机的一些基础资源以及操作系统处理后的一些基础资源. 主要包括 cpu 内存 磁盘 网络 线程 本章会介绍这些资源的一些原理,介绍如何查看资源的数量,使用情况,对性能和整体计算机执行的一 ...
- 查询总耗CPU最多与平均耗CPU最多的SQL语句
总耗CPU最多的前20个SQL total_worker_time AS [总消耗CPU 时间(ms)],execution_count [运行次数], qs.total_worker_time AS ...
- mysql 之 group by 性能优化 查询与统计分离
背景介绍 记录共128W条! SELECT cpe_id, COUNT(*) restarts FROM business_log WHERE operate_time>='2012-12- ...
- SqlServer性能优化 查询和索引优化(十二)
查询优化的过程: 查询优化: 功能:分析语句后最终生成执行计划 分析:获取操作语句参数 索引选择 Join算法选择 创建测试的表: select * into EmployeeOp from Adve ...
- 记一次SQL性能优化,查询时间从4000ms优化到200ms.
以下这句SQL是从PLM中获取代办工作流的.没优化前SQL语句执行一次大概4000ms(4秒). select ch.change_number changeNumber, f.text change ...
- SQL性能优化-查询条件与字段分开执行,union代替in与or,存储过程代替union
PS:概要.背景.结语都是日常“装X”,可以跳过直接看优化历程 环境:SQL Server 2008 R2.阿里云RDS:辅助工具:SQL 审计 概要 一个订单列表分页查询功能,单从SQL性能来讲,从 ...
随机推荐
- GridView 分页方法
要实现GrdView分页的功能. 操作如下: 1.更改GrdView控件的AllowPaging属性为true. 2.更改GrdView控件的PageSize属性为 任意数值(默认为10) 3.更改G ...
- iOS-appDelegate 生命周期
- (void)applicationWillResignActive:(UIApplication *)application 说明:当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事 ...
- flex+java实现文件的上传
flex前端代码: <?xml version="1.0" encoding="utf-8"?><s:BorderContainer xmln ...
- 错误处理:加载文件或程序集“ICSharpCode.SharpZipLib”
解决方案:如果你的程序是2.0的,则删除 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/中的所有的文件 如果是4.0的,删除C:/WINDOWS/Micr ...
- ImportError: No module named 'commands'
/*********************************************************************** * ImportError: No module na ...
- 架设 OpenLDAP服务器(转)
OpenLDAP是一个开放源代码的软件,可以免费获取使用,其主页地址是:http://www.openldap.org/.在RHEL 6上安装OpenLDAP还需要libtool-ltdl-2.2.6 ...
- 利用curl计算网络文件大小
; CURL *handle = curl_easy_init(); curl_easy_setopt(handle, CURLOPT_URL, url); curl_easy_setopt(hand ...
- 三分钟了解Activity工作流
一. 什么是工作流 以请假为例,现在大多数公司的请假流程是这样的 员工打电话(或网聊)向上级提出请假申请——上级口头同意——上级将请假记录下来——月底将请假记录上交公司——公司将请假录入电脑 采用工作 ...
- AndroidStudio用微信官方方法接入微信分享功能
转载请注明出处:http://www.cnblogs.com/wangoublog/p/5367950.html 现在微信的功能众所周知,用户量.影响力也是惊人,很多应用接入微信的功能已成为一种不可缺 ...
- HDU 1061 Rightmost Digit --- 快速幂取模
HDU 1061 题目大意:给定数字n(1<=n<=1,000,000,000),求n^n%10的结果 解题思路:首先n可以很大,直接累积n^n再求模肯定是不可取的, 因为会超出数据范围, ...