问题描述
有时,一个有效的select语句在没有明确原因的情况下停止工作。
有时该语句位于过程内部,有时直接从ODAC执行。净4
然后唯一的共同点它总是由ODAC客户端执行,所以我从来没有从我的工作中得到这个问题!
当我检查gv $ sesion时,会话处于活动状态
当我使用dbms_xplan.display_cursi检查计划时,它是最好的
当我通过pl/sql进行模拟时,查询可以使用相同的计划正常工作
当我杀死会话并从ODAC再次执行时,会发生相同的问题
当我杀死会话时,SYS.DBMS_SHARED_POOL.PURGE (地址 | | ',' | | HASH_VALUE,'C'),然后从ODAC再次执行,然后宾果解决了问题。
。.. 但是我们知道它会再次发生...
我缺少什么样的证据?
你见过这种行为吗?
有时该语句位于过程内部,有时直接从ODAC执行。净4
然后唯一的共同点它总是由ODAC客户端执行,所以我从来没有从我的工作中得到这个问题!
当我检查gv $ sesion时,会话处于活动状态
当我使用dbms_xplan.display_cursi检查计划时,它是最好的
当我通过pl/sql进行模拟时,查询可以使用相同的计划正常工作
当我杀死会话并从ODAC再次执行时,会发生相同的问题
当我杀死会话时,SYS.DBMS_SHARED_POOL.PURGE (地址 | | ',' | | HASH_VALUE,'C'),然后从ODAC再次执行,然后宾果解决了问题。
。.. 但是我们知道它会再次发生...
我缺少什么样的证据?
你见过这种行为吗?
专家解答
大概是 “卡在” 某物上了。
下次发生这种情况时,请看一下
-v $ 活动会话历史
-会话的会话 _ 等待 _ 历史
并可能在使用dbms_monitor.session_trace_enable的会话上抛出跟踪
这将使您更深入地了解它是否实际上是在进行生产性工作,还是 “旋转” (即卡在cpu循环中)
下次发生这种情况时,请看一下
-v $ 活动会话历史
-会话的会话 _ 等待 _ 历史
并可能在使用dbms_monitor.session_trace_enable的会话上抛出跟踪
这将使您更深入地了解它是否实际上是在进行生产性工作,还是 “旋转” (即卡在cpu循环中)
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




