永发信息网

怎么在oracle 中查看存储过程的执行过程

答案:2  悬赏:10  手机版
解决时间 2021-03-14 22:55
  • 提问者网友:山高云阔
  • 2021-03-14 16:18
现我有一个存储过程,代码比较多,操作的数据比较大,所以执行的时间无法让人接受。有什么方法可以查看正在执行的存储过程执行到哪个SQL了,查看存储过程的执行情况,找到慢的原因?
最佳答案
  • 五星知识达人网友:怀裏藏嬌
  • 2021-03-14 17:09
可以DEBUG一下,如果是用PLSQLDEVELOPER的话,可以设断点在可能比较慢的地方用F9跟进去。
全部回答
  • 1楼网友:纵马山川剑自提
  • 2021-03-14 17:39
1.确定正在运行的过程名 select name,locks,pins from v$db_object_cache where locks > 0 and pins > 0 and type='procedure'; name locks pins p_etl_crm_desk 1 1 2.查询v$open_cursor 视图 select sid,sql_text from v$open_cursor where upper(sql_text) like '%p_etl_crm_desk%' sid sql_text 143 begin -- call the procedure p_etl_crm_desk(v_dtdate => : 3.也可以用v$access确定 select * from v$access where object='p_etl_crm_desk'; sid owner object type 143 kdcc p_etl_crm_desk procedure 4.或者dba_ddl_locks select session_id sid, owner, name, type,mode_held held, mode_requested request from dba_ddl_locks where name = 'p_etl_crm_desk'; sid owner name type held request 143 kdcc p_etl_crm_desk table/procedure/type null none
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯