gpt4 book ai didi

oracle - 使用 gv$session 判断查询是否挂起

转载 作者:行者123 更新时间:2023-12-02 11:41:27 25 4
gpt4 key购买 nike

我有一个在 Oracle 中运行的查询,该查询可能会也可能不会挂起。它现在已经运行了大约 10 个小时,但根据我正在加载的数据量,这可能并非不合理。

我正在查看 gv$session 中的 session ,想知道是否有一种方法可以转换该信息以查看是否确实有任何事件正在进行,或者查询是否卡在等待锁定或以其他方式挂起。

我已经阅读了此 View 的文档 here 。我主要向那些有在 Oracle 中调试此类问题的经验的人寻求提示。

谢谢!

最佳答案

gv$session 中,event 列告诉您 session 当前正在等待哪个等待事件。如果您的 session 正在等待另一个 session 持有的某种锁定,则事件将告诉您这一点(例如,如果您正在排队等待锁定另一个 session 持有的行),并且 blocking_instanceblocking_session 将使用锁持有者的实例和 session ID 进行填充。您还可以查看seconds_in_wait(如果wait_time=0)来确定 session 在当前等待事件中花费了多少秒。这至少应该告诉你你的 session 当前是否“卡住”,但它不会告诉你你的查询是否真的会完成——如果有一个糟糕的计划,那么你完全有可能得到“好”等待事件,例如等待磁盘 I/O,表明 session 正在执行某些操作,但查询永远不会真正完成。

关于oracle - 使用 gv$session 判断查询是否挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10352300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com