呵呵,不可能!
唯一的判斷就是依靠經驗,如果你經常執行存储过程abc(),
則可以根據經驗來判斷大概需要多少時間!
這好比我想知道自己能活多久,隻能根據人類大概的平均年齡
來判斷自己能活100歲左右:)
唯一的判斷就是依靠經驗,如果你經常執行存储过程abc(),
則可以根據經驗來判斷大概需要多少時間!
這好比我想知道自己能活多久,隻能根據人類大概的平均年齡
來判斷自己能活100歲左右:)
對於這樣的情況有多種可能:
1.數據量很大很大,
2.死循環,
3.PL/SQL語句優化不夠,這方面東東在論壇理有很多可以搜索一下
4.配置
5.發生了鎖的情況,你可以查詢以下語句查看:
SELECT DISTINCT A.*,B.OBJECT_NAME,D.TYPE,C.USERNAME,
C.STATUS,C.LOCKWAIT,C.TERMINAL,C.PROGRAM
FROM V$LOCKED_OBJECT A, ALL_OBJECTS B, V$SESSION C, V$LOCK D
WHERE A.OBJECT_ID=B.OBJECT_ID
AND A.SESSION_ID=C.SID
AND A.LOCKED_MODE=D.LMODE
/
2.在你的procedure begin的第一行加
v_begin_time:=sysdate;v_run_id:=1;
在你的procedure end的前一行加
v_end_time:=sysdate;insert into procedure_time(v_procedure_name,v_run_id,v_begin_time,v_end_time);
3.end_time减去begin_time就是procedure的执行时间.
但是可以得到该存储过程正在执行的某个长时间的sql的估计时间,通过查询
v$session_longops得到