我有一個PL/SQL腳本,它使用SYS.UTL_HTTP通過HTTP獲取一些XML數據。 但網絡速度很慢。 我會打開5-10個同時HTTP連接,獲取5-10頁並處理它。 如何在PL/SQL中並行處理這些網絡請求?Oracle PL/SQL網絡請求並行
3
A
回答
2
最簡單的選擇可能是產生多個數據庫作業,並讓每個作業都有一個子集。根據Oracle的版本,您可以使用DBMS_JOB
或DBMS_SCHEDULER
包產卵自己的工作要做到這一點,即
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;
如果你是在11.2,但是,甲骨文提供了一個框架,讓數據庫使用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. python請求網址並行
- 2. 多網絡請求&網絡客戶端
- 3. 通過React Native進行網絡請求
- 4. oracle plsql分塊行
- 5. 如何通過網絡執行網絡請求?
- 6. 嗅探網絡請求
- 7. Safari 8網絡請求空
- 8. GET網絡請求參數
- 9. Python網絡刮硒/請求
- 10. Three20:取消網絡請求
- 11. 重定向網絡請求
- 12. 重定向網絡請求
- 13. 網絡上的REST請求
- 14. 「網絡請求失敗」
- 15. 網絡請求失敗Android
- 16. Unity3D網絡請求流程
- 17. 網絡瀏覽器如何請求並接收網頁?
- 18. PLSQL ORACLE COUNT
- 19. Oracle/PLSQL性能
- 20. PLSQL與Oracle 11g
- 21. 並行http請求
- 22. 從網絡瀏覽器到網絡請求
- 23. React Native Apollo錯誤:「網絡錯誤:網絡請求失敗」
- 24. 如何使2個併發網絡請求中Golang
- 25. 蘋果手錶併發症網絡請求
- 26. 加載webView並同時做網絡請求
- 27. iOS或Android上的併發網絡請求的效率如何?
- 28. 提取不起作用,並返回TypeError:網絡請求失敗
- 29. 實時監控並阻止網絡請求
- 30. 網絡檢查並顯示吐司上Http請求