在ORACLE9i中,当多个用户同时操作时候,很容易出现死锁。
请问有什么办法可以解决?
请问有什么办法可以解决?
解决方案 »
- 一段时间不用plsql developer之后重新使用会变得很慢
- ORA-12154: TNS: 无法解析指定的连接标识符(Sql*plus WorkSheet)
- Oracle中FLWOR表达式的应用
- 触发器问题!
- 求:oracle md5 函数及用法
- OCCI 运行出错,求助
- 能通过ORACLE SP调用客户端EXE应用程序吗?
- 在一台服务器上能同时装Oracle9iAS的infrastructure和portal吗?机器重启后如何重起服务?急
- 关于linux下oracle8.17字符集问题
- 怎么查看当前oracle服务器事务的多少
- 存储过程返回记录集,我怎么在java里面获得记录的遍历呢?求助,100分谢谢
- oracle里返回一个简单表的表的记录集的存储过程怎么写。
oracle9i中有一种ddl锁,比如当你的程序调用一个包时
另一个用户试图重新创建(或编译)该包,就可能造成两边都动不了
这种情况下一般都需要杀掉一个进程,可以用以下的语句查到select /*+ all_rows */
w1.sid waiting_session,
h1.sid holding_session,
w.kgllktype lock_or_pin,
w.kgllkhdl address, d
ecode(h.kgllkmod, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive', 'Unknown') mode_held,
decode(w.kgllkreq, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive', 'Unknown') mode_requested
from dba_kgllock w, dba_kgllock h, v$session w1, v$session h1
where ( ( (h.kgllkmod != 0)
and (h.kgllkmod != 1)
and ( (h.kgllkreq = 0)
or (h.kgllkreq = 1)
)
)
and ( ( (w.kgllkmod = 0)
or (w.kgllkmod= 1 )
)
and ( (w.kgllkreq != 0)
and (w.kgllkreq != 1)
)
)
)
and w.kgllktype = h.kgllktype
and w.kgllkhdl = h.kgllkhdl
and w.kgllkuse = w1.saddr
and h.kgllkuse = h1.saddr
commit或者rollback。