【转】查询oracle比较慢的session和sql
-查询最慢的sql
select * from (
select parsing_user_id,executions,sorts
command_type,disk_reads,sql_text from v$sqlarea order by disk_reads desc
)where rownum<10
--查询对应session
select SE.SID,SE.SERIAL#,PR.SPID,
SE.USERNAME,SE.STATUS,SE.TERMINAL,
SE.PROGRAM,SE.MODULE,
SE.SQL_ADDRESS,ST.EVENT,
ST.P1TEXT,SI.PHYSICAL_READS,SI.BLOCK_CHANGES from v$session se,v$session_wait
st,
v$sess_io si,v$process pr
where st.SID=se.SID and st.SID=si.SID
AND SE.PADDR=PR.ADDR
AND SE.SID>6
AND ST.WAIT_TIME=0
AND ST.EVENT NOT LIKE '%SQL%'
ORDER BY PHYSICAL_READS DESC;
SELECT sql_address FROM V$SESSION SS,V$SQLTEXT TT
WHERE SS.SQL_HASH_VALUE=TT.HASH_VALUE AND SID=439;
v$sqltext:存储的是完整的SQL,SQL被分割
v$sqlarea:存储的SQL 和一些相关的信息,比如累计的执行次数,逻辑读,物理读等统计信息(统计)
v$sql:内存共享SQL区域中已经解析的SQL语句。(即时)
根据sid查找完整sql语句:
select sql_text from v$sqltext a where
a.hash_value = (select sql_hash_value from v$session b where b.sid =
'&sid' )
order by piece asc
select a.CPU_TIME,--CPU时间 百万分之一(微秒)
a.OPTIMIZER_MODE,--优化方式
a.EXECUTIONS,--执行次数
a.DISK_READS,--读盘次数
a.SHARABLE_MEM,--占用shared pool的内存多少
a.BUFFER_GETS,--读取缓冲区的次数
a.COMMAND_TYPE,--命令类型(3:select,2:insert;6:update;7delete;47:pl/sql程序单元)
a.SQL_TEXT,--Sql语句
a.SHARABLE_MEM,
a.PERSISTENT_MEM,
a.RUNTIME_MEM,
a.PARSE_CALLS,
a.DISK_READS,
a.DIRECT_WRITES,
a.CONCURRENCY_WAIT_TIME,
a.USER_IO_WAIT_TIME
from SYS.V_$SQLAREA a
WHERE PARSING_SCHEMA_NAME = 'CHEA_FILL'--表空间
order by a.CPU_TIME desc
引用:http://jenniferok.iteye.com/blog/700985
从V$SQLAREA中查询最占用资源的查询
select b.username username,a.disk_reads
reads,
a.executions
exec,a.disk_reads/decode(a.executions,0,1,a.executions) rds_exec_ratio,
a.sql_text Statement
from v$sqlarea a,dba_users b
where a.parsing_user_id=b.user_id
and a.disk_reads > 100000
order by a.disk_reads desc;
用buffer_gets列来替换disk_reads列可以得到占用最多内存的sql语句的相关信息。
v$sql:内存共享SQL区域中已经解析的SQL语句。(即时)
列出使用频率最高的5个查询:
select sql_text,executions
from (select sql_text,executions,
rank() over
(order by executions desc) exec_rank
from v$sql)
where exec_rank <=5;
消耗磁盘读取最多的sql top5:
select
disk_reads,sql_text
from (select sql_text,disk_reads,
dense_rank() over
(order by disk_reads desc) disk_reads_rank
from v$sql)
where disk_reads_rank <=5;
找出需要大量缓冲读取(逻辑读)操作的查询:
select buffer_gets,sql_text
from (select sql_text,buffer_gets,
dense_rank() over
(order by buffer_gets desc) buffer_gets_rank
from v$sql)
where buffer_gets_rank<=5;
v$sqlarea字段定义:http://happyhou.blog.sohu.com/60494432.html
|
SQL_TEXT |
VARCHAR2(1000) |
First thousand characters of the SQL text for the |
|
SQL_ID |
VARCHAR2(13) |
SQL identifier of the parent cursor in the library |
|
SHARABLE_MEM |
NUMBER |
Amount of shared memory used by a cursor. If multiple |
|
PERSISTENT_MEM |
NUMBER |
Fixed amount of memory used for the lifetime of an open |
|
RUNTIME_MEM |
NUMBER |
Fixed amount of memory required during execution of a |
|
SORTS |
NUMBER |
Sum of the number of sorts that were done for all the |
|
VERSION_COUNT |
NUMBER |
Number of child cursors that are present in the cache |
|
LOADED_VERSIONS |
NUMBER |
Number of child cursors that are present in the cache |
|
OPEN_VERSIONS |
NUMBER |
The number of child cursors that are currently open |
|
USERS_OPENING |
NUMBER |
Number of users that have any of the child cursors open |
|
FETCHES |
NUMBER |
Number of fetches associated with the SQL statement |
|
EXECUTIONS |
NUMBER |
Total number of executions, totalled over all the child |
|
END_OF_FETCH_COUNT |
NUMBER |
Number of times this cursor was fully executed since the |
|
USERS_EXECUTING |
NUMBER |
Total number of users executing the statement over all |
|
LOADS |
NUMBER |
Number of times the object was loaded or reloaded |
|
FIRST_LOAD_TIME |
VARCHAR2(19) |
Timestamp of the parent creation time |
|
INVALIDATIONS |
NUMBER |
Total number of invalidations over all the child |
|
PARSE_CALLS |
NUMBER |
Sum of all parse calls to all the child cursors under |
|
DISK_READS |
NUMBER |
Sum of the number of disk reads over all child cursors |
|
DIRECT_WRITES |
NUMBER |
Sum of the number of direct writes over all child |
|
BUFFER_GETS |
NUMBER |
Sum of buffer gets over all child cursors |
|
APPLICATION_WAIT_TIME |
NUMBER |
Application wait time |
|
CONCURRENCY_WAIT_TIME |
NUMBER |
Concurrency wait time |
|
CLUSTER_WAIT_TIME |
NUMBER |
Cluster wait time |
|
USER_IO_WAIT_TIME |
NUMBER |
User I/O Wait Time |
|
PLSQL_EXEC_TIME |
NUMBER |
PL/SQL execution time |
|
JAVA_EXEC_TIME |
NUMBER |
Java execution time |
|
ROWS_PROCESSED |
NUMBER |
Total number of rows processed on behalf of this SQL |
|
COMMAND_TYPE |
NUMBER |
Oracle command type definition |
|
OPTIMIZER_MODE |
VARCHAR2(25) |
Mode under which the SQL statement was executed |
|
PARSING_USER_ID |
NUMBER |
User ID of the user that has parsed the very first |
|
PARSING_SCHEMA_ID |
NUMBER |
Schema ID that was used to parse this child cursor |
|
KEPT_VERSIONS |
NUMBER |
Number of child cursors that have been marked to be |
|
ADDRESS |
RAW(4 | 8) |
Address of the handle to the parent for this cursor |
|
HASH_VALUE |
NUMBER |
Hash value of the parent statement in the library cache |
|
OLD_HASH_VALUE |
NUMBER |
Old SQL hash value |
|
MODULE |
VARCHAR2(64) |
Contains the name of the module that was executing at |
|
MODULE_HASH |
NUMBER |
Hash value of the module that is named in the MODULEcolumn |
|
ACTION |
VARCHAR2(64) |
Contains the name of the action that was executing at |
|
ACTION_HASH |
NUMBER |
Hash value of the action that is named in the ACTIONcolumn |
|
SERIALIZABLE_ABORTS |
NUMBER |
Number of times the transaction fails to serialize, |
|
CPU_TIME |
NUMBER |
CPU time (in microseconds) used by this cursor for |
|
ELAPSED_TIME |
NUMBER |
Elapsed time (in microseconds) used by this cursor for |
|
IS_OBSOLETE |
VARCHAR2(1) |
Indicates whether the cursor has become obsolete (Y ) or not (N ). This can happen if the number |
|
CHILD_LATCH |
NUMBER |
Child latch number that is protecting the cursor |
|
PROGRAM_ID |
NUMBER |
Program identifie |
原文地址:http://blog.csdn.net/sxhong/article/details/18262663
【转】查询oracle比较慢的session和sql的更多相关文章
- 查询oracle比较慢的session和sql
注:本文来源:sxhong <查询oracle比较慢的session和sql> ---查询最慢的sql select * from ( select parsing_user_id,e ...
- 性能优化-查询最耗CPU的SESSION与SQL
在linux 系统中 用top命令查出CPU最高的SPID,再将SPID给存储过程,可以查出该进程的SQLTEXT create or replace procedure pro_get_sqltex ...
- 使用PLSQL Developer和DbVisualizer、SQLDBx查询oracle数据库时出现乱码
使用PLSQL Developer和DbVisualizer查询oracle数据库时,出现查询数据中文乱码情况. 查看了一下数据库编码格式select * from v$nls_parameters; ...
- oracle的会话(session)
会话(session)是oracle服务器对数据库连接用户记录的一种手段. oracle提供了v_$session的视图存储当前数据库的会话,查询时用v_$session 或v$session sql ...
- 查询Oracle正在执行的sql语句
--查询Oracle正在执行的sql语句及执行该语句的用户 SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, ...
- 如何查询Oracle性能监控
1.监控等待事件select event,sum(decode(wait_time,0,0,1)) prev, sum(decode(wait_time,0,1,0)) curr,count(*)fr ...
- oracle系统表v$session、v$sql字段说明
在本视图中,每一个连接到数据库实例中的 session都拥有一条记录.包括用户 session及后台进程如 DBWR, LGWR, arcchiver等等. V$SESSION中的常用列 V$SESS ...
- 查询Oracle正在执行的sql语句及kill被锁的表
查询Oracle正在执行的sql语句及执行该语句的用户SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, pa ...
- 查询oracle中所有用户信息 禁用用户
----查询oracle中所有用户信息 ----1.查询数据库中的表空间名称 ----1)查询所有表空间 select tablespace_name from dba_tablespaces; se ...
随机推荐
- A()方法
A方法用于在内部实例化控制器,调用格式:A('[项目://][分组/]模块','控制器层名称')最简单的用法: $User = A('User'); 复制代码 表示实例化当前项目的UserActi ...
- java从基础知识(十)java多线程(下)
首先介绍可见性.原子性.有序性.重排序这几个概念 原子性:即一个操作或多个操作要么全部执行并且执行的过程不会被任何因素打断,要么都不执行. 可见性:一个线程对共享变量值的修改,能够及时地被其它线程看到 ...
- word20161220
S/MIME, Secure Multipurpose Internet Mail Extensions / 安全多用途网际邮件扩展协议 SACL, system access control lis ...
- js词法分析
JavaScript的高级知识---词法分析 词法分析 词法分析方法: js运行前有一个类似编译的过程即词法分析,词法分析主要有三个步骤: 分析参数 再分析变量的声明 分析函数说明 函数在运行的瞬间, ...
- caffe_手写数字识别Lenet模型理解
这两天看了Lenet的模型理解,很简单的手写数字CNN网络,90年代美国用它来识别钞票,准确率还是很高的,所以它也是一个很经典的模型.而且学习这个模型也有助于我们理解更大的网络比如Imagenet等等 ...
- Oracle 文件的导入与导出
说明:本机使用的是32位oracle,使用的方法是plsql导入与导出 1.导出数据步骤. 1)登陆上plsql后在工具里选择导出用户对象,选择上所有的表在选择保存的路径.点击导出就可以了. 2)上边 ...
- LeetCode 299 Bulls and Cows
Problem: You are playing the following Bulls and Cows game with your friend: You write down a number ...
- 如何去掉MyEclipse中的空格符,回车符?
我前几天不小心把空格符合回车符显示了出来,如图: 天啊,看了两天以后,我感觉整个人都不行了,眼花缭乱,于是就各种尝试,想要去掉,就有了如下方法,其实很简单 在eclipse中的菜单的 window-& ...
- android学习第一篇 基本概念
一. 1. Android 四大組件 Activity , Service , BroadcastReceiver ,ContentProvider 2. 多個Activity組成棧,當前A ...
- 中国知网cnki(永久会员账号)
中国知网cnki(永久会员账号)大男孩免费分享 网站简介: (中国知网http://www.cnki.net/)中国知网是国家知识基础设施(National Knowledge Infrastru ...