SELECT l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, s.user#,
l.os_user_name,s.machine, s.terminal,a.sql_text, a.action
FROM v$sqlarea a,v$session s, v$locked_object l
WHERE l.session_id = s.sid
AND s.prev_sql_addr = a.address;
问题1:
查询出来的结果是
selectseq_test.NEXTVAL FROM DUAL;
问题2:
select /*+ rule */
lpad('--', decode(b.BLOCK, 1, 0, 4)) || s.username user_name,
b.TYPE,
o.owner || '.' || o.object_name object_name,
s.sid,
s.serial#,
decode(b.REQUEST, 0, 'BLOCKED', 'WAITING') status,
s.SQL_HASH_VALUE,
sq.SQL_TEXT
FROM dba_objects o, v$session s, v$lock v, v$lock b, v$sqlarea sq
WHERE v.ID1 = o.object_id
AND v.SID = s.sid
and v.SID = b.SID
and (b.BLOCK = 1 or b.REQUEST > 0)
and v.TYPE = 'TM'
and s.SQL_HASH_VALUE = sq.HASH_VALUE(+)
order by b.ID2, v.ID1, User_name desc;
查询结果是:INSERT INTO 语句
会有什么情况能阻塞insertinto 的执行呢?(排除空间不够的问题)?
说明一下:insertinto 的插入值是根据selectseq_test.NEXTVAL FROM DUAL获取到值。
猜测: 1 、 难道是执行insert into 的时候获取不上selectseq_test.NEXTVAL FROM DUAL的值。造成的insert into的等待?
2、又有什么情况下导致selectseq_test.NEXTVAL FROM DUAL不能获取seqence号呢?
谢谢!
[ 本帖最后由 aiyuewbl 于 2009-9-23 17:03 编辑 ]
|