今天在update一些数据时发现极其慢,平时不会有这个问题,虽然这个表的数据量非常大,但是却有相关索引,怎么会这么慢呢?我经过一直的验证,发现并不是所以的update都这么慢,只是相对这条的记录update非常慢然后我怀疑可能是这条记录被锁了,所以就手动去update,这时出现一个错误信息如下:
Oracle-00054:resource busy and acquire with NOWAIT specified.我想问一下,如果我只是在程序端用了update的语句(申明在update时我并未加锁),是否会造成这种现象?
Oracle-00054:resource busy and acquire with NOWAIT specified.我想问一下,如果我只是在程序端用了update的语句(申明在update时我并未加锁),是否会造成这种现象?
from v$session a ,v$sqltext b ,v$access c
where c.object=upper('&1')
and c.type in ('TABLE','PACKAGE','PROCEDURE','FUNCTION','PACKAGE BODY')
and a.sid=c.sid
and b.address = a.sql_address
and b.hash_value = a.sql_hash_value
order by a.sid,a.serial#,b.piece;看看表被什么session锁定了?
select a.sid,a.serial#,a.username,a.program,
c.owner, c.object_name ,a.MACHINE,a.TERMINAL,a.PADDR,a.STATUS,a.SQL_ADDRESS
from v$session a, v$locked_object b, all_objects c
where a.sid=b.session_id and
c.object_id = b.object_id