1. Trace - We run the trace based on
particular activity. We require to generate trace based on particular activity
like concurrent report, or form which is leading to time consumption. Trace can
be run at the below level
- Trace need to be enabled at
Concurrent Define window.
Blocking Queries:
select to_char(a.LOGON_TIME,'DDMonYY HH24:MM'),a.sid,
a.serial#,c.NAME, a.STATUS,a.ACTION from V$SESSION a ,DBA_BLOCKERS
b,AUDIT_ACTIONS c
where a.sid = b.holding_session and a.command = c.action;
select /*+ rule */ 'SID '||a.sid||' is blocking the sessions
'||b.sid from v$lock a, v$lock b where a.block=1 and b.request >0;
SELECT c.owner, c.object_name, c.object_type, b.SID,
b.serial#, b.status, b.osuser, b.machine
FROM
v$locked_object a, v$session b,
dba_objects c
WHERE b.SID = a.session_id AND a.object_id =
c.object_id AND b.sid in ( select
holding_session from DBA_BLOCKERS ) ;
SELECT c.owner, c.object_name, c.object_type, b.SID,
b.serial#, b.status,b.osuser, b.machine FROM
v$locked_object a, v$session b,
dba_objects c
WHERE b.SID = a.session_id AND a.object_id = c.object_id AND
b.sid in ( select holding_session from DBA_BLOCKERS ) ;
SELECT c.owner, c.object_name, c.object_type, b.SID,
b.serial#, b.status, b.osuser, b.machine FROM
v$locked_object a, v$session b,
dba_objects c
WHERE b.SID = a.session_id AND a.object_id =
c.object_id AND b.sid in ( select
holding_session from DBA_BLOCKERS ) ;
SELECT session_id
FROM DBA_LOCKS WHERE BLOCKING_OTHERS = 'Blocking';
select * from DBA_WAITERS;
select * from dba_blockers;
select * from v$lock where block=1;
SELECT DECODE (request, 0, 'Holder: ', 'Waiter: ') || sid
sess,inst_id,id1, id2,lmode,request, TYPE
FROM gv$LOCK WHERE
(id1, id2, TYPE) IN (SELECT id1, id2, TYPE FROM gv$LOCK WHERE request > 0)
ORDER BY id1, request;
SELECT 'alter system kill session ''' || s.sid || ',' ||
s.SERIAL# || ','||'@'||''|| i.instance_number || ''';' a,'ps -ef |grep
LOCAL=NO|grep ' || p.SPID SPID,
'kill -9 ' || p.SPID,s.status FROM gv$session s, gv$process
p,gv$instance i WHERE ( (p.addr(+) = s.paddr) AND (p.inst_id(+) = s.inst_id))
AND s.sid = &sid;
SELECT DISTINCT S1.USERNAME || '@' || S1.MACHINE
|| ' ( INST=' || S1.INST_ID || ' SID=' || S1.SID || ' ) IS
BLOCKING '
|| S2.USERNAME || '@' || S2.MACHINE || ' ( INST=' ||
S1.INST_ID || ' SID=' || S2.SID || ' ) OBJ_ID:' ||L1.ID1||'
OBJ_NAME:'||O.OBJECT_NAME
AS BLOCKING_STATUS
FROM GV$LOCK L1, GV$SESSION S1, GV$LOCK L2, GV$SESSION
S2,DBA_OBJECTS O
WHERE S1.SID=L1.SID AND S2.SID=L2.SID
AND S1.INST_ID=L1.INST_ID AND S2.INST_ID=L2.INST_ID
AND L1.ID1=OBJECT_ID
AND L1.ID1=O.OBJECT_ID
AND L1.BLOCK > 0 AND L2.REQUEST > 0
AND L1.ID1 = L2.ID1 AND L1.ID2 = L2.ID2;
SELECT
l1.sid || ' is
blocking ' || l2.sid blocking_sessions
FROM
gv$lock l1, gv$lock
l2
WHERE
l1.block = 1 AND
l2.request > 0
AND
l1.id1 = l2.id1 AND
l1.id2 = l2.id2;