Search code examples
sqlteradatateradata-sql-assistant

teradata sql optimization help test query


I need help on some teradata sql optimization code. The below code I am running just to see if this returns any records. This query has been running for 19 minutes already. I just need a fast query to see if there are any results from the query. How can I optimize this test query? I just need to see if this returns any results for any day of the month. It looks like the primary key is txn_id and table partition is PRD_END_DT. Thanks for your help.

SELECT top 2000 PRD_END_DT, RECORD_ID, TRAN_DIM_NB, TXN_ID, APPL_ID, CHANNEL_ID,
        ENTRY_DATE_DT, ENTRY_DATE_TM, SERVER_ID, SRC_ENTRY_DATE_DT, SRC_ENTRY_DATE_TM,
        USER_ID, USER_ID_TYPE, TXN_TYPE, SESSION_ID, TXN_CAT_CD, UNQ_TXN_ID
FROM    ICDW_FL_GBL_V.LDA_CIG_TXNS_SLT_TXN_DAILY
 where prd_end_dt = to_date('08/01/2017', 'MM/DD/YYYY') 

Solution

  • SELECT top 2000 PRD_END_DT
          , RECORD_ID
          , TRAN_DIM_NB
          , TXN_ID
          , APPL_ID
          , CHANNEL_ID
          , ENTRY_DATE_DT
          , ENTRY_DATE_TM
          , SERVER_ID
          , SRC_ENTRY_DATE_DT
          , SRC_ENTRY_DATE_TM
          , USER_ID
          , USER_ID_TYPE
          , TXN_TYPE
          , SESSION_ID
          , TXN_CAT_CD
          , UNQ_TXN_ID
    FROM    ICDW_FL_GBL_V.LDA_CIG_TXNS_SLT_TXN_DAILY
    WHERE prd_end_dt = to_date('08/01/2017', 'MM/DD/YYYY') 
    

    be sure you have a valid index (secondary index) on table ICDW_FL_GBL_V.LDA_CIG_TXNS_SLT_TXN_DAILY column prd_end_dt

    CREATE INDEX your_idx (prd_end_dt) ON LDA_CIG_TXNS_SLT_TXN_DAILY;