oracle中sql执行信息查询

--查询执行最慢的

sql select *  from (select sa.SQL_TEXT,         sa.SQL_FULLTEXT,         sa.EXECUTIONS "执行次数",         round(sa.ELAPSED_TIME / 1000000, 2) "总执行时间",         round(sa.ELAPSED_TIME / 1000000 / sa.EXECUTIONS, 2) "平均执行时间",         sa.COMMAND_TYPE,         sa.PARSING_USER_ID "用户ID",         u.username "用户名",         sa.HASH_VALUE      from v$sqlarea sa      left join all_users u       on sa.PARSING_USER_ID = u.user_id      where sa.EXECUTIONS > 0      order by (sa.ELAPSED_TIME / sa.EXECUTIONS) desc)  where  (用户名 ='BLIMS_DATA' OR  用户名 ='BLIMS_DICT')         and rownum <= 50;         

--查询次数最多的 sql

select *  from (select s.SQL_TEXT,         s.EXECUTIONS "执行次数",         s.PARSING_USER_ID "用户名",         rank() over(order by EXECUTIONS desc) EXEC_RANK      from v$sql s      left join all_users u       on u.USER_ID = s.PARSING_USER_ID) t  where exec_rank <= 100         and( 用户名 ='112' or 用户名 ='114'  );        

--查看总消耗时间最多的前10条SQL语句

select * from (select v.sql_id, v.child_number, v.sql_text, v.elapsed_time, v.cpu_time, v.disk_reads, rank() over(order by v.elapsed_time desc) elapsed_rank from v$sql v) a where elapsed_rank <= 10;

--查看CPU消耗时间最多的前10条SQL语句

select * from (select v.sql_id, v.child_number, v.sql_text, v.elapsed_time, v.cpu_time, v.disk_reads, rank() over(order by v.cpu_time desc) elapsed_rank from v$sql v) a where elapsed_rank <= 10;

--查看消耗磁盘读取最多的前10条SQL语句

select * from (select v.sql_id, v.child_number, v.sql_text, v.elapsed_time, v.cpu_time, v.disk_reads, rank() over(order by v.disk_reads desc) elapsed_rank from v$sql v) a where elapsed_rank <= 10;

原文地址:https://www.cnblogs.com/zy20160117/p/8303269.html