user_tables如何在Oracle上锁定?

时间:2012-03-13 12:53:28

标签: python oracle locking cx-oracle database-locking

我有一台机器的追溯,下面的查询似乎挂了好几天:

SELECT table_name FROM user_tables

什么可能产生这种锁定?用户永远不能修改此表;并且有大量后续的查询实例成功运行。

1 个答案:

答案 0 :(得分:3)

因此,由于条件不再存在,因此无法判断发生了什么。

但是,在将来,如果再次出现类似或类似情况,您将需要使用Oracle的等待界面。也就是说,请查看V$SESSION

首先,您需要确定进程是在旋转(即在CPU上)还是阻塞(即等待等待事件)。确定这一点的方法是查看STATE列:

  • 如果STATE为'WAITING',则会话被阻止。如果是这种情况,则EVENT列应描述会话正在等待的事件。
  • 如果STATE不是'WAITING',那么会话就在CPU上,而EVENT列是它等待的最后一件事。
    • 如果STATE是'WAITED KNOWN TIME',则WAIT_TIME是以厘秒为单位的时间。
    • 如果STATE为'WAITED SHORT TIME',则会话等待的时间不到一厘秒。
    • 如果STATE为'WAITED UNKNOWN TIME',则等待的时间未知,因为会话的timed_statistics设置为FALSE。

希望有所帮助。