我有一台机器的回溯,其中以下查询似乎挂了好几天:
SELECT table_name FROM user_tables
什么可能产生这样的锁?用户永远不能修改这个表;并且该查询的许多后续实例都成功运行。
我有一台机器的回溯,其中以下查询似乎挂了好几天:
SELECT table_name FROM user_tables
什么可能产生这样的锁?用户永远不能修改这个表;并且该查询的许多后续实例都成功运行。
因此,由于条件不再存在,因此无法判断发生了什么。
但是,如果将来再次发生这种情况或类似情况,您将需要使用 Oracle 的等待接口。也就是看V$SESSION
。
首先,您需要确定进程是在旋转(即,在 CPU 上)还是阻塞(即,等待等待事件)。确定这一点的方法是查看该STATE
列:
'WAITING'
,则会话被阻止。如果是这种情况,那么 EVENT 列应该描述会话正在等待的事件。'WAITED KNOWN TIME'
,则 WAIT_TIME 是以厘秒为单位等待的时间。'WAITED SHORT TIME'
,则会话等待不到一厘秒。'WAITED UNKNOWN TIME'
,则等待时间未知,因为 timed_statistics 为会话设置为 FALSE。希望有帮助。