如何在Oracle上锁定用户表?

2024-04-19 10:22:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我对一台机器进行了回溯,在该机器上,以下查询似乎被挂起了几天:

SELECT table_name FROM user_tables

什么可能产生这样的锁?用户永远无法修改此表;并且此查询的后续实例有很多成功运行。在


Tags: 实例用户namefrom机器tablestableselect
1条回答
网友
1楼 · 发布于 2024-04-19 10:22:15

所以,既然这种情况已经不存在了,就没办法知道发生了什么。在

但是,将来,如果这种情况或类似情况再次发生,您将希望使用Oracle的wait接口。也就是说,看看V$SESSION。在

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

  • 如果状态为'WAITING',则会话被阻止。如果是这样,那么EVENT列应该描述会话正在等待的事件。在
  • 如果状态不是'WAITING',那么会话在CPU上,EVENT列是它等待的最后一个内容。
    • 如果STATE是'WAITED KNOWN TIME',那么WAIT_TIME是等待的时间(以厘米为单位)。在
    • 如果状态是'WAITED SHORT TIME',那么会话等待的时间不到一秒。在
    • 如果状态是'WAITED UNKNOWN TIME',那么等待的时间是未知的,因为会话的timed_statistics设置为FALSE。在

希望有帮助。在

相关问题 更多 >