2016-06-11 7 views
0

DBMS_PARALLEL_EXECUTE를 사용하여 새 작업을 만들고 row_id별로 청크를 만든 다음 작업을 실행하는 plsql 프로 시저가 있습니다.PLSQL 개발자의 병렬 작업에서 실행중인 PLSQL 프로 시저를 디버깅하는 방법

procedure test as 
begin 
     DBMS_PARALLEL_EXECUTE.create_task('newtask'); 
     DBMS_PARALLEL_EXECUTE.create_chunks_by_rowid('newtask','PEEUSH','NEWTABLE',TRUE,1000); 
     DBMS_PARALLEL_EXECUTE.run_task(task_name  => 'newtask', 
            sql_stmt  => 'begin PEEUSH.test2(:start_id,:end_id); end;', 
            language_flag => DBMS_SQL.NATIVE, 
            parallel_level => 4); 

end; 

는 지금은 PLSQL 개발자에서이 문제를 디버깅 할,하지만 곧 실행 run_task에 도달. 그것은 나온다. PLSQL 개발자의 test2 프로 시저로 어떤 단계가 있습니까?

답변

0

원격 디버거가 필요합니다 (DBMS_DEBUG_JDWP). 불행히도 PL/SQL Developer는 현재 이것을 지원하지 않으므로 SQL Developer과 같은 다른 도구를 설치해야합니다.

0

4 개의 병렬 스레드에서 DBMS_PARALLEL_EXECUTE를 통해 실행되는 pl-sql 프로 시저에서 디버깅을 수행하는 것이 실제로 가능할 지 확실하지 않습니다.

런타임 예외를 확인하기 위해 작은 데이터 집합에서 begin PEEUSH.test2(:start_id,:end_id); end;을 별도로 실행하고 디버그했습니다.

그러나 바람직한 것은 작업이 성공적으로 실행되었는지 아닌지를 확인하는 것입니다.

-- To monitor task 
select * from USER_PARALLEL_EXECUTE_TASKS; 

-- To monitor chunks 
select * from USER_PARALLEL_EXECUTE_CHUNKS;