Oracle数据库维护常用的SQL代码示例(1)(2)
10、求process/session的状态 SELECTp.Pid,p.Spid,s.Program,s.Sid,s.Serial# FROMV$processp,V$sessions WHERE s.Paddr = p .Addr; 11、求谁阻塞了某个session(10g) SELECTSid,Username,Event,Blockin
10、求process/session的状态
- SELECT p.Pid, p.Spid, s.Program, s.Sid, s.Serial#
- FROM V$process p, V$session s
- WHERE s.Paddr = p.Addr;
11、求谁阻塞了某个session(10g)
- SELECT Sid, Username, Event, Blocking_Session, Seconds_In_Wait, Wait_Time
- FROM V$session
- WHERE State IN ('WAITING')
- AND Wait_Class != 'Idle';
12、查会话的阻塞
- col user_name format a32
- SELECT /*+ rule */
- Lpad(' ', Decode(l.Xidusn, 0, 3, 0)) || l.Oracle_Username User_Name,
- o.Owner, o.Object_Name, s.Sid, s.Serial#
- FROM V$locked_Object l, Dba_Objects o, V$session s
- WHERE l.Object_Id = o.Object_Id
- AND l.Session_Id = s.Sid
- ORDER BY o.Object_Id, Xidusn DESC;
- col username format a15
- col lock_level format a8
- col owner format a18
- col object_name format a32
- SELECT /*+ rule */
- s.Username,
- Decode(l.TYPE, 'tm', 'table lock', 'tx', 'row lock', NULL) Lock_Level,
- o.Owner, o.Object_Name, s.Sid, s.Serial#
- FROM V$session s, V$lock l, Dba_Objects o
- WHERE l.Sid = s.Sid
- AND l.Id1 = o.Object_Id(+)
- AND s.Username IS NOT NULL;
13、求等待的事件及会话信息/求会话的等待及会话信息
- SELECT Se.Sid, s.Username, Se.Event, Se.Total_Waits, Se.Time_Waited,
- Se.Average_Wait
- FROM V$session s, V$session_Event Se
- WHERE s.Username IS NOT NULL
- AND Se.Sid = s.Sid
- AND s.Status = 'ACTIVE'
- AND Se.Event NOT LIKE '%SQL*Net%'
- ORDER BY s.Username;
- SELECT s.Sid, s.Username, Sw.Event, Sw.Wait_Time, Sw.State,
- Sw.Seconds_In_Wait
- FROM V$session s, V$session_Wait Sw
- WHERE s.Username IS NOT NULL
- AND Sw.Sid = s.Sid
- AND Sw.Event NOT LIKE '%SQL*Net%'
- ORDER BY s.Username;
14、求会话等待的file_id/block_id
- col event format a24
- col p1text format a12
- col p2text format a12
- col p3text format a12
- SELECT Sid, Event, P1text, P1, P2text, P2, P3text, P3
- FROM V$session_Wait
- WHERE Event NOT LIKE '%SQL%'
- AND Event NOT LIKE '%rdbms%'
- AND Event NOT LIKE '%mon%'
- ORDER BY Event;
- SELECT NAME, Wait_Time
- FROM V$latch l
- WHERE EXISTS (SELECT 1
- FROM (SELECT Sid, Event, P1text, P1, P2text, P2, P3text, P3
- FROM V$session_Wait
- WHERE Event NOT LIKE '%SQL%'
- AND Event NOT LIKE '%rdbms%'
- AND Event NOT LIKE '%mon%') x
- WHERE x.P1 = l.Latch#);
15、求会话等待的对象
- col owner format a18
- col segment_name format a32
- col segment_type format a32
- SELECT Owner, Segment_Name, Segment_Type
- FROM Dba_Extents
- WHERE File_Id = &File_Id
- AND &Block_Id BETWEEN Block_Id AND Block_Id + Blocks - 1;
16、求出某个进程,并对它进行跟踪
- SELECT s.Sid, s.Serial#
- FROM V$session s, V$process p
- WHERE s.Paddr = p.Addr
- AND p.Spid = &1;
- Exec Dbms_System.Set_Sql_Trace_In_Session(&1, &2, TRUE);
- Exec Dbms_System.Set_Sql_Trace_In_Session(&1, &2, FALSE);
17、求当前session的跟踪文件
- SELECT P1.VALUE || '/' || P2.VALUE || '_ora_' || p.Spid || '.ora' Filename
- FROM V$process p, V$session s, V$parameter P1, V$parameter P2
- WHERE P1.NAME = 'user_dump_dest'
- AND P2.NAME = 'instance_name'
- AND p.Addr = s.Paddr
- AND s.Audsid = Userenv('SESSIONID')
- AND p.Background IS NULL
- AND Instr(p.Program, 'CJQ') = 0;
18、求出锁定的对象
- SELECT Do.Object_Name, Session_Id, Process, Locked_Mode
- FROM V$locked_Object Lo, Dba_Objects Do
- WHERE Lo.Object_Id = Do.Object_Id;
关于Oracle数据库维护常用的SQL代码示例就介绍到这里了,希望本次的介绍能够对您有所收获!
精彩图集
精彩文章