各位好,我最近的一个项目用的oracle10g数据库,但是EM中的顶级SQL中总是有一条SQL 占用很大资源,KILL掉后又马上出来,请大家帮忙看看。以下就是这个SQL,是SYSMAN用户下执行的SELECT CURRENT_STATUS FROM MGMT_CURRENT_AVAILABILITY WHERE TARGET_GUID IN (SELECT TARGET_GUID FROM MGMT_TARGETS WHERE EMD_URL = :B1 ) ORDER BY TARGET_GUID FOR UPDATE忘记说了:网上查了半天也没个结果,有人说做一个exec dbms_stats.gather_schema_stats('SYSMAN') 就好了,但是我做了还是出现这个SQL,求高手!!!!!
当有LOCK冲突时会提示错误并结束而不是在那里等待(比如:要查的行已经被其它事务锁了,当前的锁事务与之冲突,加上nowait,当前的事务会结束会提示错误并立即结束 STATEMENT而不再等待).
如果加了for update后 该语句用来锁定特定的行(如果有where子句,就是满足where条件的那些行)。当这些行被锁定后,其他会话可以选择这些行,但不能更改或删除这些行,直到该语句的事务被commit语句或rollback语句结束为止。
SELECT CURRENT_STATUS FROM MGMT_CURRENT_AVAILABILITY WHERE TARGET_GUID IN (SELECT TARGET_GUID FROM MGMT_TARGETS WHERE EMD_URL = :B1 ) ORDER BY TARGET_GUID FOR UPDATE
emctl stop dbconsole