千家信息网

Oracle常用性能分析语句有哪些

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,本篇内容主要讲解"Oracle常用性能分析语句有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Oracle常用性能分析语句有哪些"吧!1、查看数据库中
千家信息网最后更新 2024年11月30日Oracle常用性能分析语句有哪些

本篇内容主要讲解"Oracle常用性能分析语句有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Oracle常用性能分析语句有哪些"吧!

1、查看数据库中过去15分钟内排在前5位的等待事件及其总等待时间

select * from (SELECT NVL(event, 'ON CPU') event, COUNT(*) total_wait_tmFROM   v$active_session_historyWHERE  sample_time > SYSDATE - 15/(24*60)GROUP BY eventORDER BY 2 desc)where rownum <= 5;

2、查看过去15分钟内使用CPU及资源最多的前5位会话

column username format a12column module format a30SELECT * FROM(SELECT s.username, s.module, s.sid, s.serial#, count(*)FROM v$active_session_history h, v$session sWHERE h.session_id = s.sidAND   h.session_serial# = s.serial#AND   session_state= 'ON CPU' AND      sample_time > sysdate - interval '15' minuteGROUP BY s.username, s.module, s.sid, s.serial#ORDER BY count(*) desc)where rownum <= 5;

session_state列有两个有效的值:ON CPU和WAITING,分别表示会话是活动的还是在等待资源,同样将session_state指定为WAITING值,可以查看在等待资源的前5位会话信息。

3、查看那些业务用户占用最多的资源

SELECT * FROM(SELECT u.username, h.module, h.session_id sid,       h.session_serial# serial#, count(*)FROM dba_hist_active_sess_history h, dba_users uWHERE h.user_id = u.user_idAND   session_state= 'ON CPU'AND  (sample_time between to_date('2018-07-22:00:00:00','yyyy-mm-dd:hh34:mi:ss')AND   to_date('2018-07-22:23:59:59','yyyy-mm-dd:hh34:mi:ss'))AND u.username != 'SYS'GROUP BY u.username, h.module, h.session_id, h.session_serial#ORDER BY count(*) desc)where rownum <= 5;

4、定位造成大量资源消耗的对象信息

SELECT * FROM(select * from (SELECT o.object_name, o.object_type, s.event, s.time_waitedFROM dba_hist_active_sess_history s, dba_objects oWHERE s.sample_timebetween to_date('2018-07-22:00:00:00','yyyy-mm-dd:hh34:mi:ss')AND   to_date('2018-07-22:23:59:59','yyyy-mm-dd:hh34:mi:ss')AND s.current_obj# = o.object_idORDER BY 4 desc)WHERE rownum <= 5;

5、查看过去15分钟内造成最多数据库等待的sql语句

select ash.user_id,u.username,s.sql_text,sum(ash.wait_time +ash.time_waited) ttl_wait_timefrom v$active_session_history ash,v$sqlarea s,dba_users uwhere ash.sample_time between sysdate - 15/(24*60) and sysdateand ash.sql_id = s.sql_idand ash.user_id = u.user_idgroup by ash.user_id,s.sql_text, u.usernameorder by ttl_wait_time

6、找出谁持有阻塞锁

select s1.username || '@' || s1.machine || ' ( SID=' || s1.sid || ' )  is blocking ' || s2.username || '@' || s2.machine || ' ( SID=' || s2.sid || ' ) ' AS blocking_statusfrom v$lock l1, v$session s1, v$lock l2, v$session s2where s1.sid=l1.sid and s2.sid=l2.sidand l1.BLOCK=1 and l2.request > 0and l1.id1 = l2.id1and l2.id2 = l2.id2 ;

到此,相信大家对"Oracle常用性能分析语句有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0