Есть ли способ оптимизировать запрос ниже? Я нахожу, что он отображает результат медленный, почти 15 минут, для получения 3500 записей. Я подозреваю, что это из-за подзапросов.Запрос с несколькими подзапросами слишком медленный
SELECT
MSTUDYPROCESS.I_PROCESS_PL,
MPROCESS.N_PROCESS_PL C_PART_CODE,
MPROCESS.I_LOAD_TYP,
MPROCESS.I_ASME_GRP,
(
SELECT
MASMEGRP.N_ASME_GRP
FROM
MASMEGRP
WHERE
MASMEGRP.I_ASME_GRP = MPROCESS.I_ASME_GRP
) N_ASME_GRP,
MSTUDYPROCESS.Q_COMMON_PARTS_PER_HIT,
MSTUDYPROCESS.I_AUTOM_TYP,
MSTUDYPROCESS.I_STMPG_PART_TYP,
MSTUDYPROCESS.I_BLNK_TYP,
MSTUDYPROCESS.I_ASSY_TYP,
MSTUDYPROCESS.Q_PARTS_PER_HIT,
MSTUDYPROCESS.Q_NMBR_OF_DIES,
MSTUDYPROCESS.Q_STN_REQD,
MSTUDYPROCESS.L_TOGGLE,
MSTUDYPROCESS.Q_SHUT_HGT,
MSTUDYPROCESS.X_COMNT,
MSTUDYPROCESS.N_PART_PL,
MSTUDYPROCESS.N_PART_PL_ADDNL,
CASE
(
SELECT
COUNT(*)
FROM
MPROCESSDEPEND
WHERE
MPROCESSDEPEND.I_PROCESS_PL = MSTUDYPROCESS.I_PROCESS_PL
) WHEN 0 THEN 0 ELSE 1 END IS_MASSYDETAIL,
CASE
(
SELECT
COUNT(*)
FROM
MOFFLOAD
WHERE
MOFFLOAD.I_STDY = MSTUDYPROCESS.I_STDY
AND MOFFLOAD.N_PROCESS_PL = MPROCESS.N_PROCESS_PL
) WHEN 0 THEN 0 ELSE 1 END IS_MOFFLOAD,
(
SELECT
COUNT(DISTINCT I_MODEL_YR)
FROM
MLOADFORECAST
WHERE
MLOADFORECAST.I_STDY = MSTUDYPROCESS.I_STDY
AND MLOADFORECAST.I_PROCESS_PL = MSTUDYPROCESS.I_PROCESS_PL
) NUM_YEARS,
EPL.Get_Line_BX(MSTUDYPROCESS.I_STDY, MSTUDYPROCESS.I_PROCESS_PL) BLANK_LINE,
MSTUDYPROCESS.I_UPD_TID,
MSTUDYPROCESS.D_UPD_LAST
FROM
MSTUDYPROCESS,
MPROCESS
WHERE
MSTUDYPROCESS.I_STDY = IN_I_STDY
AND MPROCESS.I_PROCESS_PL = MSTUDYPROCESS.I_PROCESS_PL
ORDER BY
MPROCESS.N_PROCESS_PL;
Что план выполнения выглядит? – mustaccio
План выполнения? вы имеете в виду конечный результат этой хранимой процедуры? –
Привет, попробуйте эту модификацию, я дал вам выше, anddont забудьте проголосовать, если это хорошо для вас;) – Esperento57