2014-01-15 3 views
0

두 테이블이 모두 1MB 미만인이 쿼리가 있습니다. 아직도 오래 걸립니다. SUM (CASE)을 사용하지 말아야 할 하이브와 관련이 있습니까?합계 (사례) 하이브에서 매우 비효율적입니다

SELECT 
a.weeknum, 
SUM(CASE WHEN a.payment_action_type = 'chargeback' THEN b.chargeback_multiplier*a.num_accounts 
WHEN a.payment_action_type = 'refund' THEN b.refund_multiplier*a.num_accounts END) 
as num_reversals 
FROM 
hipal2_1921596 a 
JOIN vivekkaul_ads_weekly_arrival_curve b 
ON b.weeks_elapsed = a.actual_weeks_elapsed 
GROUP BY a.weeknum 
+0

당신의 하둡 클러스터에서 벌어지고 다른 무엇 "긴 시간"과는 얼마나됩니까? –

+0

또한이 쿼리와 sum 라인이없고 단지'a.weeknum'을 반환하는 쿼리 사이의 시간차는 무엇입니까? – dimamah

답변

0

적절한 색인을 얻었습니까? 당신이 중복 당신이 경우 다른 인덱스를 검토해야 할 수도 있지만

는 다음을보십시오이

CREATE NONCLUSTERED INDEX [IX_weeks_elapsed] ON vivekkaul_ads_weekly_arrival_curve(weeks_elapsed)  
INCLUDE (chargeback_multiplier, refund_multiplier) 

CREATE NONCLUSTERED INDEX [IX_hipal2_1921596] ON hipal2_1921596 (actual_weeks_elapsed ) 
INCLUDE (payment_action_type, num_accounts) 
관련 문제