我如何使此过程更快?

时间:2018-11-06 10:30:46

标签: sql oracle

我有此存储过程,我需要为此用户获取该nosologico的所有日期。但是目前我只知道日期,但是要花5秒钟。

我可以更快地执行此操作吗?我尝试不使用','而是使用'join'进行连接,但是我有一些错误。谁能帮忙

这是我的SQL:

create or replace PROCEDURE G_TICKETS_BY_STATO_CHIUSO(USERIDRICHIEDENTEP IN VARCHAR2, result_cursor OUT SYS_REFCURSOR)

IS
    rc SYS_REFCURSOR;

BEGIN

    OPEN rc FOR SELECT DISTINCT  T.ID, a.NOME, a.COGNOME, T.OPERAZIONE 
    FROM TICKET_NOTIFICE T, RICOVERO r, ANAGRAFICA a ,PS_METADATA M,AMB_IMPEGNATIVE C, AMB_METADATA D
    WHERE (T.USERIDRICHIEDENTE=USERIDRICHIEDENTEP and  T.stato = '1' and T.NOTIFICATION='0' AND REGEXP_SUBSTR (T.NOSOLOGICO, '[^AMB_]+$',1,1)=C.ID_AMB_METADATI AND
    C.ID_AMB_METADATI=D.ID_AMB_METADATI AND D.IDASSISTITO=a.IDASSISTITO)
   OR (T.USERIDRICHIEDENTE=USERIDRICHIEDENTEP and  T.stato = '1' and T.NOTIFICATION='0' AND T.NOSOLOGICO=r.NOSOLOGICO AND r.IDANAGRAFICA=a.ID ) 
   or (T.USERIDRICHIEDENTE=USERIDRICHIEDENTEP and  T.stato = '1' and T.NOTIFICATION='0' AND REGEXP_SUBSTR (T.NOSOLOGICO, '[^PS_]+$',1,1)=M.EPISODIOPSNUM AND M.IDANAGRAFICA=a.ID);

    result_cursor := rc;

END;

该表如下所示,该用户的数据如下: enter image description here

1 个答案:

答案 0 :(得分:1)

不确定是否要在查询中创建笛卡尔积。基本上,您可以合并三个不同的查询。

Object.keys(myObj).map(key => {return {name: key, value: myObj[key]}})