0
我有以下過程中,電子郵件程序需要長時間來執行
PROCEDURE SEND_TO_MAILING_LIST
(P_MAILING_LIST IN VARCHAR2
,P_SUBJECT IN VARCHAR2
,P_TEXT IN VARCHAR2
,P_STATUS OUT NUMBER
)
IS
CURSOR mail_cur IS
SELECT x.forenames||'.'||x.surname||'@xyz.com' mail_alias
FROM ABC a, XYZ x
WHERE a.id = x.id
AND a.list_name = 'DEF'
AND a.id <> 274
Union All
SELECT x.forenames||'.'||x.surname||'@abc.com' mail_alias
FROM ABC a, XYZ x
WHERE a.id = x.id
AND x.list_name = 'DEF'
AND a.id = 274
Union All
SELECT x.other_to_email mail_alias
FROM ABC a, XYZ x
AND a.list_name = 'PQR';
BEGIN
p_status := 1;
FOR rec IN mail_cur LOOP
MAILX(rec.mail_alias, 'TESTING PURPOSE','TESTING','TEST');
END LOOP;
EXCEPTION WHEN OTHERS THEN
p_status := -1;
END;
這在執行需要5分鐘,發送電子郵件到想要的人。個別查詢僅導致幾行(小於5)
這種延遲的原因是什麼?
_Without_的LOOP,手續快? –
Oracle!= MySQL,我刪除了無關標籤。 – Barmar
它也需要太多的時間沒有循環。它與內置的mailx proc問題我猜。任何建議來克服這種延遲? –