PARALLEL_EXECUTE 문의(실행후 무한대기) 0 3 1,214

by ora [PL/SQL] parallel execute create_task chunks number_col run_task [2019.10.16 18:13:48]


begin
    DBMS_PARALLEL_EXECUTE.CREATE_TASK(TASK_NAME => 'DPE_TEST(BY NUMBER)');
end;

begin

            DBMS_PARALLEL_EXECUTE.CREATE_CHUNKS_BY_NUMBER_COL
            ( TASK_NAME   => 'DPE_TEST(BY NUMBER)',
              TABLE_OWNER => 'ERP',
              TABLE_NAME  => 'Z_DPE_TEST_TAB',
              TABLE_COLUMN => 'ID',
              CHUNK_SIZE  => 10000 );
              
end;

declare

 l_sql_stmt varchar2(32767);
 
 begin
  l_sql_stmt := 'update z_dpe_test_tab
                 set val=round(dbms_random.value(1,10000))
                 ,audsid=8
                 where id between :START_ID AND :END_ID';
                 
    DBMS_PARALLEL_EXECUTE.RUN_TASK
    ( TASK_NAME      => 'DPE_TEST(BY NUMBER)',
      SQL_STMT       => l_sql_stmt,        
      LANGUAGE_FLAG  => DBMS_SQL.NATIVE,
      PARALLEL_LEVEL => 10 );
end;                       
dator.co.k 싸이트 참고 하여 첨부와 같이 DBMS_PARALLEL_EXECUTE 작업 생성, 분할, 실행하였습니다. 
두군데 서버에서 실행하였는데 한군데서는 40초정도만에 작업이 종료가 되는데 다른서버(신규설치)에서는 30분을 실행해도 작업이완료가 안됩니다.(계속 모든작업이 UNASSIGNED 으로 남아있음) 같은 버전인데 왜 신규설치 서버에서는 안되는지 모르겠습니다. 고수님들 조언좀 부탁드립니다. 

 

by jkson [2019.10.17 14:48:50]

레퍼런스 보고 비교해보니 잘못 작성하신 줄 알았더니 레버런스 뒤에 내용이 더 있네요.

DBMS_PARALLEL_EXECUTE.CREATE_CHUNKS_BY_NUMBER_COL

부분에서 OWNER 신규서버에 맞게 세팅된 건가요?

SELECT *
FROM ALL_USERS
WHERE USERNAME = 'ERP'

혹은 접속하신 계정이 ERP 계정 DML 권한이 있는지..


by ora [2019.10.17 17:02:14]

확인해보니 해당 계정에 권한은 있었습니다.

오라클 파라미터 값중 job_queue_processes 값이 0 인것을 수정하니 잘도네요

답변 감사합니다.

 


by jkson [2019.10.18 10:35:35]

원인을 찾아서 다행이네요. ora님 답변 덕분에 다른 분들도 해당 문제를 발견하면 해결하는 데 도움이 많이 되겠네요^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입