我们有一个使用多个内部连接的查询,现在我们在同一个视图上多次进行内部连接。它类似于层次结构类型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小时,因此需要修复此查询
我还有别的办法可以考虑吗
1条答案
按热度按时间q9yhzks01#
不,重写的查询将不起作用。想想这个
JOIN
:仅在以下情况下匹配:
此条件不在原始查询中。我猜这在你的数据中从来都不是真的。