- UID
- 1112
- 阅读权限
- 100
- 帖子
- 42914
- 精华贴数
- 8
- 技术排名
- 26
- 技术积分
- 49197
- 社区排名
- 104
- 社区积分
- 22305
- 注册时间
- 2001-10-15
- 精华贴数
- 8
- 技术积分
- 49197
- 社区积分
- 22305
- 注册时间
- 2001-10-15
- 论坛徽章:
- 184
|
发表于 2008-3-21 10:50:38
|显示全部楼层
原帖由 goodhawk 于 2008-3-21 09:59 发表 
SELECT s.SID, s.row_wait_block#, s.row_wait_row#, s.row_wait_file#
,s.row_wait_obj#
FROM v$session s
WHERE s.SID IN (144, 59)
我只知道 59 在等待 144,那么,ROW_WAIT_BLOCK# 如何换算呢?
麻烦知道的告知一下。
在SESSION - A 执行
SCOTT@retail>select * from emp1 where empno=7654 for update;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30
Elapsed: 00:00:00.09
在SESSION -B 执行
SCOTT@retail>select * from emp1 where empno=7654 for update;
此时SESSION-B被堵塞.
回到SESSION-A查询,知道被堵的SESION -B 的SID=967
SCOTT@retail>select sid,taddr,machine,last_call_et,event,p1,p1raw,p2,p2raw,p3,p3raw
2 from gv$session where status = 'ACTIVE' and username is not null order by last_call_et;
SID TADDR MACHINE LAST_CALL_ET EVENT P1 P1RAW
----- ---------------- -------------------- ------------ ------------------------------ ---------- ---------------- --------
979 070000019B4D4768 DOMAIN\CIT-ZHANG-HF 0 SQL*Net message to client 1413697536 0000000054435000
975 DOMAIN\S56 6 db file scattered read 27 000000000000001B 1115
967 070000019B4D5008 DOMAIN\CIT-ZHANG-HF 8 enq: TX - row lock contention 1415053318 0000000054580006 35389
986 DOMAIN\S56 12 db file sequential read 10 000000000000000A 206
875 DOMAIN\S56 14 db file sequential read 5 0000000000000005 60
1058 070000019AB8C908 IBM3 23 wait for unread message on bro 5.0440E+17 070000019ECFF998 5.0440E+
adcast channel
893 DOMAIN\S56 165 db file sequential read 169 00000000000000A9 4221
7 rows selected.
Elapsed: 00:00:00.28
967被堵的ROW
SCOTT@retail>select ROW_WAIT_OBJ#,ROW_WAIT_FILE#,ROW_WAIT_BLOCK#,ROW_WAIT_ROW# from v$session where sid=967;
ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW#
------------- -------------- --------------- -------------
169938 84 52 4
Elapsed: 00:00:00.09
根据FNO,BLOCK_ID,ROW_NUMBER 找出ROW.
SCOTT@retail>select * from emp1 where dbms_rowid.rowid_block_number(rowid)=52 and dbms_rowid.rowid_relative_fno(rowid)=84 and
2 dbms_rowid.rowid_row_number(rowid)=4;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------
7654 MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30
Elapsed: 00:00:00.26
SCOTT@retail> |
|