У нас есть запрос, который использует несколько внутренних соединений
Теперь здесь мы выполняем внутреннее соединение с одним и тем же представлением несколько раз.
это как тип иерархии join
Это приводит к увеличению времени выполнения запроса.
Запрос
Select field1, field2 ... few fields
FROM
CUST_MART.v_CPM AS P
JOIN CUST_MART.V_CPM_MART_HIER AS C ON p.prod_cl = c.prod_cl
AND g.lvl = c.lvl
JOIN CUST_MART.V_CPM_MART_CLASS AS D0 ON c.prod_cl_0 = d0.prod_cl
AND c.lvl_0 = d0.lvl
JOIN CUST_MART.V_CPM_MART_CLASS AS D2 ON c.prod_cl_2 = d2.prod_cl
AND c.lvl_2 = d2.lvl
JOIN CUST_MART.V_CPM_MART_CLASS AS D3 ON c.prod_cl_3 = d3.prod_cl
AND c.lvl_3 = d3.lvl
JOIN CUST_MART.V_CPM_MART_CLASS AS D6 ON c.prod_cl_6 = d6.prod_cl
AND c.lvl_6 = d6.lvl
JOIN CUST_MART.v_CPM_upc AS V on p.skt = v.skt
Будет ли этот запрос работать -
Select field1, field2 ... few fields
FROM
CUST_MART.v_CPM AS P
JOIN CUST_MART.V_CPM_MART_HIER AS C ON p.prod_cl = c.prod_cl
AND g.lvl = c.lvl
JOIN CUST_MART.V_CPM_MART_CLASS AS D0 ON c.prod_cl_0 = d0.prod_cl
AND c.lvl_0 = d0.lvl
AND c.prod_cl_2 = d0.prod_cl
AND c.lvl_2 = d0.lvl
AND c.prod_cl_3 = d0.prod_cl
AND c.lvl_3 = d0.lvl
AND c.prod_cl_6 = d0.prod_cl
AND c.lvl_6 = d0.lvl
JOIN CUST_MART.v_CPM_upc AS V on p.skt = v.skt
Запрос
- Будет ли работать мой переписанный запрос?
- Я не могу запустить на Prod, поэтому не могу проверить это с существующими данными
- Этот запрос занимает 4 часа и выполняется ежедневно, поэтому необходимо исправить этот запрос
- есть ли другой подход, который я могу рассмотреть