编译存储过程的时候,執行很慢﹐好像hang住一樣
1.可能被锁住
查看v$locked
select b.sid,b.serial#,b.machine,b.terminal,b.program,b.process,b.status from v$lock a , v$session b
where a.SID = b.SID
得到死锁session的SID,SERIAL#参看这个是否为你自己用户下的,然后kill掉session
2.可能被挂起
查看v$session_wait
select b.serial#,a.* from v$session_wait a,v$session bwhere a.sid = b.sid得到等待的session的sid和serial#
3.查看dba_ddl_locks
select session_id sid, owner, name, type, mode_held held, mode_requested request
from dba_ddl_locks where name = '&your_package_name'
有对象失效,或者子过程什么的被调用中,所以会等待
原因已查明﹕
job(143)定期執行DFMS.SP_KB_AUTO_SEND_SIGNAL﹐而該SP會調用DFMS.SP_KB_UPDATE_STATUS_FOR_USING﹐該JOB每10分鐘運行一次﹐JOB運行期間相應的SP亦補調用﹐在SP執行期間不能被編譯﹐就會出現此種現象
對策﹕
編譯暫停JOB運行.