更快的查询执行

时间:2016-07-07 06:11:43

标签: sql-server-2012

我的表中有42列和4个连接。执行需要140秒,我想减少执行时间。怎么办?

SELECT DISTINCT GR_ID,
                CONVERT(VARCHAR, GR_DT, 106) AS GRDate,
                GR_GN,
                GR_GID,
                GR_BS,
                GR_BN,
                GR_DC,
                GR_COP,
                GR_PA,
                GR_AR,
                GR_BG,
                GR_SM,
                GR_KG,
                GR_IN,
                GR_TS,
                CMLC_BC,
                CMLC_SC,
                CMLC_KG,
                CMLC_BL,
                CMBC_BC,
                CMBC_SC,
                CMBC_KG,
                CMBC_BL,
                GR_BRN,
                GR_BLC,
                GR_LEA,
                GR_ALF,
                GR_BTA,
                GR_PID,
                GR_UTS,
                GR_LR,
                CMGB_BC,
                CMGB_SC,
                CMGB_KG,
                CMGB_BL,
                CMGB_LR,
                GR_UPC,
                GR_UPT,
                GR_UTA,
                GR_TTA,
                GR_SPA,
                GR_SAR,
                GR_NR,
                ISNULL(ACK_ACK, 'NO')        AS ACK_ACK
FROM   GR
       LEFT JOIN CMBC
         ON ( CMBC_ID = GR_GID )
            AND ( CMBC_IID = GR_PID )
       RIGHT JOIN CMLC
         ON ( CMLC_ID = GR_GID )
            AND ( CMLC_IID = GR_PID )
       RIGHT JOIN CMGB
         ON ( CMGB_ID = GR_GID )
            AND ( CMGB_IID = GR_PID )
            AND ( CMGB_TS = GR_UTS )
       LEFT JOIN ACK
         ON ( ACK_GN = GR_GN )
            AND ( ACK_GID = GR_GID )
ORDER  BY GR_GN,
          GR_GID 

0 个答案:

没有答案