Home Page for the TeradataForum
 

Archives of the TeradataForum

Message Posted: Wed, 26 Jan 2011 @ 15:35:24 GMT


     
  <Prev Next>  
<<First
<Prev
Next> Last>>  


Subj:   Query Performance with Filter
 
From:   Terry Clear

Why do I need to filter the data to improve query performance?

The SALES_DATA table, updated weekly, contains sales data for each item at each location. The query is to get total sales ($) and quantity by week for each item.

The desired result is to get a rolling 53 weeks of aggregate sales and quantity. The query below works, but is very slow, approximately 47 minutes.

     SELECT S.ITEM_NBR
                 , S.YR_WK
                 , SUM(S.WKLY_SALES) AS WKLY_SALES
                 , SUM(S.WKLY_QTY) AS WKLY_QTY

     FROM DB_NAME.SALES_DATA S
     ,(SELECT  YR_WK
     FROM DB_NAME.CALENDAR_DAY
     WHERE GREGORIAN_DATE = DATE - 379)C

     WHERE S.YR_WK > C.YR_WK

     GROUP BY 1,2

However, when I put a filter on the SALES_DATA table, the response time improves to 4 minutes

**Note** The YR_WK 10939 is week 39 of 2009 and is just an arbitrary week that falls outside of the desired result.

     SELECT S.ITEM_NBR
                 , S.YR_WK
                 , SUM(S.WKLY_SALES) AS WKLY_SALES
                 , SUM(S.WKLY_QTY) AS WKLY_QTY

     FROM DB_NAME.SALES_DATA S
     ,(SELECT  YR_WK
     FROM DB_NAME.CALENDAR_DAY
     WHERE GREGORIAN_DATE = DATE - 379)C

     WHERE S.YR_WK > 10939
     AND S.YR_WK > C.YR_WK

Why is this filter necessary to improve performance?

Terry Clear GRS Project Manager



     
  <Prev Next>  
<<First
<Prev
Next> Last>>  
 
 
 
 
 
 
 
 
  
  Top Home Privacy Feedback  
 
 
Copyright for the TeradataForum (TDATA-L), Manta BlueSky    
Copyright 2016 - All Rights Reserved    
Last Modified: 15 Jun 2023