
有一个sql如下,看结构是别名为RES的表跟别名为I,RES3,f的三个表进行jion和left jion,请教大神们这个sql可以怎么去优化吗,执行计划我放在后面
SELECT
RES.ID_,
RES.CREATETIME_,
RES.T_F_KEY_,
RES.P_F_ID_,
RES.P_I_ID_,
RES.ASSIGNEE_,
RES.NAME_,
RES.E_ID_,
RES3.TEXT_,
f.aTitle,
f.extString,
f.uId,
f.aId
FROM
A_U_K RES
LEFT JOIN (
SELECT DISTINCT
*
FROM
(
SELECT
T_ID_,
U_ID_ AS USER_ID
FROM
A_RU_IK I,
A_U_K T
WHERE
I.T_ID_ = T.ID_
AND TYPE_ = ‘candidate’
AND T.ASSIGNEE_ IS NULL
AND U_ID_ IS NOT NULL
AND TID_ IS NOT NULL
UNION
SELECT
T_ID_,
G_ID_ AS USER_ID
FROM
A_RU_IK I,
A_U_K T
WHERE
I.T_ID_ = T.ID_
AND TYPE_ = ‘candidate’
AND I.G_ID_ IS NOT NULL
AND I.T_ID_ IS NOT NULL
AND T.ASSEE_ IS NULL
) U
) I ON RES.ID_ = I.T_ID_
JOIN A_RU_VALE RES3 ON RES3.P_T_ID_ = RES.P_T_ID_
LEFT JOIN f_tance f ON f.processId = RES.P_T_ID_
AND f.STATUS = 1
WHERE
( RES.ASSEE_ LIKE ‘%ADMIN%’ OR I.U_ID LIKE ‘%ADMIN%’ )
AND RES3.NAME_ = ‘moduleId’
AND RES3.TEXT_ != ‘internal-list’
AND f.id is not null
ORDER BY
RES.CREATETIME_ DESC;