robin@SZDB:~
/dba_scripts/custom/sql
>
more
my_env.sql
SELECT spid, s.sid, s.serial
FROM
v
$process p,
v
$session s
WHERE p.addr = s.paddr
AND s.sid = (SELECT sid
FROM
v
$mystat
WHERE rownum = 1);
robin@SZDB:~
/dba_scripts/custom/sql
>
more
blocker.sql
col block_msg
format
a50;
select
c.terminal||
' ('
''
||a.sid||
','
||c.serial
from
v
$lock a,
v
$lock b,
v
$session c,
v
$session d
where a.id1=b.id1
and a.id2=b.id2
and a.block>0
and a.sid <>b.sid
and a.sid=c.sid
and b.sid=d.SID;
robin@SZDB:~
/dba_scripts/custom/sql
>
more
blocking_session_detail.sql
--To
find
the query
for
blocking session
--Access Privileges: SELECT on
v
$session,
v
$sqlarea
SELECT
'sid='
|| a.SID
||
' Wait Class='
|| a.wait_class
||
' Time='
|| a.seconds_in_wait
|| CHR (10)
||
' Query='
|| b.sql_text
FROM
v
$session a,
v
$sqlarea b
WHERE a.blocking_session IS NOT NULL AND a.sql_address = b.address
ORDER BY a.blocking_session
/
robin@SZDB:~
/dba_scripts/custom/sql
>
more
request_lock_type.sql
--This script generates a report of
users
waiting
for
locks.
--Access Privileges: SELECT on
v
$session,
v
$lock
SELECT sn.username, m.sid, m.
type
,
DECODE(m.lmode, 0,
'None'
,
1,
'Null'
,
2,
'Row Share'
,
3,
'Row Excl.'
,
4,
'Share'
,
5,
'S/Row Excl.'
,
6,
'Exclusive'
,
lmode, ltrim(to_char(lmode,
'990'
))) lmode,
DECODE(m.request,0,
'None'
,
1,
'Null'
,
2,
'Row Share'
,
3,
'Row Excl.'
,
4,
'Share'
,
5,
'S/Row Excl.'
,
6,
'Exclusive'
,
request, ltrim(to_char(m.request,
'990'
))) request, m.id1, m.id2
FROM
v
$session sn,
v
$lock m
WHERE (sn.sid = m.sid AND m.request != 0)
OR (sn.sid = m.sid
AND m.request = 0 AND lmode != 4
AND (id1, id2) IN (SELECT s.id1, s.id2
FROM
v
$lock s
WHERE request != 0
AND s.id1 = m.id1
AND s.id2 = m.id2)
)
ORDER BY id1, id2, m.request;
robin@SZDB:~
/dba_scripts/custom/sql
>
more
request_lock_detail.sql
set
linesize 190
col osuser
format
a15
col username
format
a20 wrap
col object_name
format
a20 wrap
col terminal
format
a25 wrap
col Req_Mode
format
a20
select
B.SID, C.USERNAME, C.OSUSER, C.TERMINAL,
DECODE(B.ID2, 0, A.OBJECT_NAME,
'Trans-'
||to_char(B.ID1)) OBJECT_NAME,
B.TYPE,
DECODE(B.LMODE,0,
'--Waiting--'
,
1,
'Null'
,
2,
'Row Share'
,
3,
'Row Excl'
,
4,
'Share'
,
5,
'Sha Row Exc'
,
6,
'Exclusive'
,
'Other'
)
"Lock Mode"
,
DECODE(B.REQUEST,0,
' '
,
1,
'Null'
,
2,
'Row Share'
,
3,
'Row Excl'
,
4,
'Share'
,
5,
'Sha Row Exc'
,
6,
'Exclusive'
,
'Other'
)
"Req_Mode"
from DBA_OBJECTS A, V$LOCK B, V$SESSION C
where A.OBJECT_ID(+) = B.ID1
and B.SID = C.SID
and C.USERNAME is not null
order by B.SID, B.ID2;