SYS.UTL_HTTP를 사용하여 HTTP를 통해 XML 데이터를 가져 오는 PL/SQL 스크립트가 있습니다. 하지만 네트워크가 느립니다. 5-10 개의 동시 HTTP 연결을 열고 5-10 페이지를 가져 와서 처리합니다. PL/SQL에서 이러한 네트워크 요청을 어떻게 병렬화 할 수 있습니까?Oracle PL/SQL 네트워크 병렬 요청
3
A
답변
2
가장 쉬운 옵션은 여러 데이터베이스 작업을 생성하고 각각이 호출의 하위 집합을 작성하는 것입니다. 오라클 버전에 따라, 당신은 당신이 11.2에있는 경우 즉,이 작업을 수행 할
FOR x IN (SELECT url_to_access FROM table_of_urls)
LOOP
dbms_job.submit(l_jobid,
'BEGIN procedure_to_access_url(' || x.url_to_access || '); END;');
END LOOP;
을 자신의 일자리를 생성하기 위해 DBMS_JOB
또는 DBMS_SCHEDULER
패키지를 사용할 수 있습니다, 그러나, 오라클은 데이터베이스가 할 수있는 프레임 워크를 제공하고 있습니다 DBMS_PARALLEL_EXECUTE
package을 사용하여 많은 수의 DBMS_SCHEDULER
작업에 작업을 자동으로 할당합니다.
0
단일 PL/SQL은 스레드를 쉽게 생성 할 수 없습니다. utl_http.req의 여러 변수를 사용할 수 있습니다. 그런 다음 당신은 실제로 더 빠르게 작동 다른 쪽 끝에서 서버에 따라
v_req1 := utl_http.begin_request('http....');
v_req2 := utl_http.begin_request('http....');
v_req3 := utl_http.begin_request('http....');
v_req4 := utl_http.begin_request('http....');
v_resp := utl_http.get_response(v_req1);
...
v_resp := utl_http.get_response(v_req2);
...
v_resp := utl_http.get_response(v_req3);
...
v_resp := utl_http.get_response(v_req4);
...
여부. 이 시나리오에서 오류를 처리하는 것은 어려울 수 있습니다.
관련 문제
- 1. Oracle/PLSQL 성능
- 2. Oracle PLSQL - 존재하지 않는 테이블에 커서 선언
- 3. Oracle PL/SQL 병렬 실행
- 4. 네트워크 공유의 Oracle 데이터 파일
- 5. PLSQL Developer에서 DML이 포함 된 Oracle 함수를 테스트하는 방법은 무엇입니까?
- 6. PLSQL 삽입
- 7. Oracle 10g에서 병렬 처리를 구성하는 방법은 무엇입니까?
- 8. PHP를 사용하는 비동기/병렬 HTTP 요청 curl_multi
- 9. 원격 응용 프로그램에 스로틀 병렬 요청
- 10. HTTP 병렬 요청 및 AJAX/폴링
- 11. C# 및 PLSQL 커서
- 12. PLSQL 함수를 이해하려고 시도했습니다
- 13. PLSQL 피하기 코드 중복
- 14. PLSQL : 나는이 같은 절차를
- 15. PLSQL 오라클 부모 자녀
- 16. PLSQL 함수 도움말
- 17. 마이크로 소프트 IIS에서 오라클 PLSQL 카트리지 호스팅
- 18. 병렬 처리 만들기 -j 명령
- 19. 로컬 호스트 네트워크 모니터 및 httpservlet 요청
- 20. jQuery.get 네트워크 연결이 가능할 때까지 요청 대기열
- 21. 모바일 데이터 연결을 통해서만 네트워크 요청 라우팅
- 22. HTTP 네트워크 처리량을 최대화하려면 어떻게합니까?
- 23. Oracle DB는 연결 당 여러 (병렬) 작업을 지원합니까?
- 24. plsql 사용자 정의 숫자 형식
- 25. PLSQL 명령 줄 매개 변수
- 26. 간단한 PLSQL (오라클) 구문 질문
- 27. PLSQL SELECT 문에서 변수 사용
- 28. PLSQL, 테이블에 저장된 실행 수식
- 29. C# 네트워크 프로그래밍 - HTTPWebRequest 긁기
- 30. 스칼라/자바에서 웹 요청 내의 병렬 처리/스레드?