SQL Server:COALESCE导致运行时过多

时间:2021-03-11 11:45:29

Morning People,

早上的人,

I'm having a little issue with COALESCE causing a stored procedure which is writing data to a table to run excessively. (without the COALESCE it takes 4 minutes and with it it takes 1 hour 30 minutes ish).

我对COALESCE有一点问题,导致存储过程将数据写入表中过度运行。 (没有COALESCE需要4分钟,需要1小时30分钟才能完成)。

I need this staging table's f_ columns to be clear of NULLs as these will be used for calculus later on in the warehouse which is then being displayed to Cognos reporting studio.

我需要这个临时表的f_列清除NULL,因为这些将在稍后的仓库中用于演算,然后显示给Cognos Reporting Studio。

There are 161 columns that require this and I have also tried to do a "CASE WHEN X IS NULL THEN 0 ELSE X" which apparently has a lower impact but still takes an Hour and a half.

有161列需要这个,我也试图做一个“情况,当X是空的,然后0 ELSE X”,这显然影响较小但仍然需要一个半小时。

Also have added "DEFAULT 0" to the tables build with no joys.

还为没有欢乐的表构建添加了“DEFAULT 0”。

Stored Procedure follows (Apologies in advance for the sheer size of it)

存储过程如下(事先告知它的大小)

TRUNCATE TABLE
    ST_PIT_BOOKINGCOSTS

INSERT INTO
    ST_PIT_BOOKINGCOSTS
SELECT DISTINCT
    ST_PIT_BOOKINGHEADERS.i_SK_Bkg,
    ST_PIT_BOOKINGHEADERS.i_SK_Version,
    0 AS f_BkgTransportPax,
    0 AS f_BkgTransportQuantity,
    0 AS f_BkgTransportAdults,
    0 AS f_BkgTransportChildren,
    0 AS f_BkgTransportInfants,
    0 AS f_BkgTransportRevenue,
    0 AS f_BkgTransportCost,
    COALESCE(ST_V_FC_FLIGHTCOSTS_AIR.f_Pax,0) AS f_BkgFltPax,
    COALESCE(ST_V_FC_FLIGHTCOSTS_AIR.f_Quantity,0) AS f_BkgFltQuantity,
    COALESCE(ST_V_FC_FLIGHTCOSTS_AIR.f_Adults,0) AS f_BkgFltAdults,
    COALESCE(ST_V_FC_FLIGHTCOSTS_AIR.f_Children,0) AS f_BkgFltChildren,
    COALESCE(ST_V_FC_FLIGHTCOSTS_AIR.f_Infants,0) AS f_BkgFltInfants,
    COALESCE(ST_V_FC_FLIGHTCOSTS_AIR.f_Revenue,0) AS f_BkgFltRevenue,
    COALESCE(ST_V_FC_FLIGHTCOSTS_AIR.f_Cost,0) AS f_BkgFltCost,
    COALESCE(ST_V_FC_FLIGHTCOSTS_FER.f_Pax,0) AS f_BkgFerryPax,
    COALESCE(ST_V_FC_FLIGHTCOSTS_FER.f_Quantity,0) AS f_BkgFerryQuantity,
    COALESCE(ST_V_FC_FLIGHTCOSTS_FER.f_Adults,0) AS f_BkgFerryAdults,
    COALESCE(ST_V_FC_FLIGHTCOSTS_FER.f_Children,0) AS f_BkgFerryChildren,
    COALESCE(ST_V_FC_FLIGHTCOSTS_FER.f_Infants,0) AS f_BkgFerryInfants,
    COALESCE(ST_V_FC_FLIGHTCOSTS_FER.f_Revenue,0) AS f_BkgFerryRevenue,
    COALESCE(ST_V_FC_FLIGHTCOSTS_FER.f_Cost,0) AS f_BkgFerryCost,
    COALESCE(ST_V_FC_FLIGHTCOSTS_TRN.f_Pax,0) AS f_BkgTrainPax,
    COALESCE(ST_V_FC_FLIGHTCOSTS_TRN.f_Quantity,0) AS f_BkgTrainQuantity,
    COALESCE(ST_V_FC_FLIGHTCOSTS_TRN.f_Adults,0) AS f_BkgTrainAdults,
    COALESCE(ST_V_FC_FLIGHTCOSTS_TRN.f_Children,0) AS f_BkgTrainChildren,
    COALESCE(ST_V_FC_FLIGHTCOSTS_TRN.f_Infants,0) AS f_BkgTrainInfants,
    COALESCE(ST_V_FC_FLIGHTCOSTS_TRN.f_Revenue,0) AS f_BkgTrainRevenue,
    COALESCE(ST_V_FC_FLIGHTCOSTS_TRN.f_Cost,0) AS f_BkgTrainCost,
    COALESCE(ST_V_AC_ACCOMCOSTS.f_Pax,0) AS f_BkgAccomPax,
    COALESCE(ST_V_AC_ACCOMCOSTS.f_Quantity,0) AS f_BkgAccomQuantity,
    COALESCE(ST_V_AC_ACCOMCOSTS.f_Adults,0) AS f_BkgAccomAdults,
    COALESCE(ST_V_AC_ACCOMCOSTS.f_Children,0) AS f_BkgAccomChildren,
    COALESCE(ST_V_AC_ACCOMCOSTS.f_Infants,0) AS f_BkgAccomInfants,
    COALESCE(ST_V_AC_ACCOMCOSTS.f_Revenue,0) AS f_BkgAccomRevenue,
    COALESCE(ST_V_AC_ACCOMCOSTS.f_Cost,0) AS f_BkgAccomCost,
    COALESCE(ST_V_EC_EXTRACOSTS_ACTI.f_Pax,0) AS f_BkgExtraACTIPax,
    COALESCE(ST_V_EC_EXTRACOSTS_ACTI.f_Quantity,0) AS f_BkgExtraACTIQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_ACTI.f_Adults,0) AS f_BkgExtraACTIAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_ACTI.f_Children,0) AS f_BkgExtraACTIChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_ACTI.f_Infants,0) AS f_BkgExtraACTIInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_ACTI.f_Revenue,0) AS f_BkgExtraACTIRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_ACTI.f_Cost,0) AS f_BkgExtraACTICost,
    COALESCE(ST_V_EC_EXTRACOSTS_CARH.f_Pax,0) AS f_BkgExtraCARHPax,
    COALESCE(ST_V_EC_EXTRACOSTS_CARH.f_Quantity,0) AS f_BkgExtraCARHQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_CARH.f_Adults,0) AS f_BkgExtraCARHAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_CARH.f_Children,0) AS f_BkgExtraCARHChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_CARH.f_Infants,0) AS f_BkgExtraCARHInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_CARH.f_Revenue,0) AS f_BkgExtraCARHRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_CARH.f_Cost,0) AS f_BkgExtraCARHCost,
    COALESCE(ST_V_EC_EXTRACOSTS_CARI.f_Pax,0) AS f_BkgExtraCARIPax,
    COALESCE(ST_V_EC_EXTRACOSTS_CARI.f_Quantity,0) AS f_BkgExtraCARIQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_CARI.f_Adults,0) AS f_BkgExtraCARIAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_CARI.f_Children,0) AS f_BkgExtraCARIChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_CARI.f_Infants,0) AS f_BkgExtraCARIInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_CARI.f_Revenue,0) AS f_BkgExtraCARIRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_CARI.f_Cost,0) AS f_BkgExtraCARICost,
    COALESCE(ST_V_EC_EXTRACOSTS_CHLD.f_Pax,0) AS f_BkgExtraCHLDPax,
    COALESCE(ST_V_EC_EXTRACOSTS_CHLD.f_Quantity,0) AS f_BkgExtraCHLDQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_CHLD.f_Adults,0) AS f_BkgExtraCHLDAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_CHLD.f_Children,0) AS f_BkgExtraCHLDChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_CHLD.f_Infants,0) AS f_BkgExtraCHLDInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_CHLD.f_Revenue,0) AS f_BkgExtraCHLDRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_CHLD.f_Cost,0) AS f_BkgExtraCHLDCost,
    COALESCE(ST_V_EC_EXTRACOSTS_CLUB.f_Pax,0) AS f_BkgExtraCLUBPax,
    COALESCE(ST_V_EC_EXTRACOSTS_CLUB.f_Quantity,0) AS f_BkgExtraCLUBQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_CLUB.f_Adults,0) AS f_BkgExtraCLUBAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_CLUB.f_Children,0) AS f_BkgExtraCLUBChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_CLUB.f_Infants,0) AS f_BkgExtraCLUBInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_CLUB.f_Revenue,0) AS f_BkgExtraCLUBRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_CLUB.f_Cost,0) AS f_BkgExtraCLUBCost,
    COALESCE(ST_V_EC_EXTRACOSTS_CREC.f_Pax,0) AS f_BkgExtraCRECPax,
    COALESCE(ST_V_EC_EXTRACOSTS_CREC.f_Quantity,0) AS f_BkgExtraCRECQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_CREC.f_Adults,0) AS f_BkgExtraCRECAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_CREC.f_Children,0) AS f_BkgExtraCRECChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_CREC.f_Infants,0) AS f_BkgExtraCRECInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_CREC.f_Revenue,0) AS f_BkgExtraCRECRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_CREC.f_Cost,0) AS f_BkgExtraCRECCost,
    COALESCE(ST_V_EC_EXTRACOSTS_EQUI.f_Pax,0) AS f_BkgExtraEQUIPax,
    COALESCE(ST_V_EC_EXTRACOSTS_EQUI.f_Quantity,0) AS f_BkgExtraEQUIQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_EQUI.f_Adults,0) AS f_BkgExtraEQUIAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_EQUI.f_Children,0) AS f_BkgExtraEQUIChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_EQUI.f_Infants,0) AS f_BkgExtraEQUIInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_EQUI.f_Revenue,0) AS f_BkgExtraEQUIRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_EQUI.f_Cost,0) AS f_BkgExtraEQUICost,
    COALESCE(ST_V_EC_EXTRACOSTS_EXCU.f_Pax,0) AS f_BkgExtraEXCUPax,
    COALESCE(ST_V_EC_EXTRACOSTS_EXCU.f_Quantity,0) AS f_BkgExtraEXCUQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_EXCU.f_Adults,0) AS f_BkgExtraEXCUAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_EXCU.f_Children,0) AS f_BkgExtraEXCUChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_EXCU.f_Infants,0) AS f_BkgExtraEXCUInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_EXCU.f_Revenue,0) AS f_BkgExtraEXCURevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_EXCU.f_Cost,0) AS f_BkgExtraEXCUCost,
    COALESCE(ST_V_EC_EXTRACOSTS_FLTR.f_Pax,0) AS f_BkgExtraFLTRPax,
    COALESCE(ST_V_EC_EXTRACOSTS_FLTR.f_Quantity,0) AS f_BkgExtraFLTRQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_FLTR.f_Adults,0) AS f_BkgExtraFLTRAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_FLTR.f_Children,0) AS f_BkgExtraFLTRChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_FLTR.f_Infants,0) AS f_BkgExtraFLTRInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_FLTR.f_Revenue,0) AS f_BkgExtraFLTRRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_FLTR.f_Cost,0) AS f_BkgExtraFLTRCost,
    COALESCE(ST_V_EC_EXTRACOSTS_INSR.f_Pax,0) AS f_BkgExtraINSRPax,
    COALESCE(ST_V_EC_EXTRACOSTS_INSR.f_Quantity,0) AS f_BkgExtraINSRQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_INSR.f_Adults,0) AS f_BkgExtraINSRAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_INSR.f_Children,0) AS f_BkgExtraINSRChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_INSR.f_Infants,0) AS f_BkgExtraINSRInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_INSR.f_Revenue,0) AS f_BkgExtraINSRRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_INSR.f_Cost,0) AS f_BkgExtraINSRCost,
    COALESCE(ST_V_EC_EXTRACOSTS_OTHR.f_Pax,0) AS f_BkgExtraOTHRPax,
    COALESCE(ST_V_EC_EXTRACOSTS_OTHR.f_Quantity,0) AS f_BkgExtraOTHRQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_OTHR.f_Adults,0) AS f_BkgExtraOTHRAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_OTHR.f_Children,0) AS f_BkgExtraOTHRChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_OTHR.f_Infants,0) AS f_BkgExtraOTHRInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_OTHR.f_Revenue,0) AS f_BkgExtraOTHRRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_OTHR.f_Cost,0) AS f_BkgExtraOTHRCost,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIP.f_Pax,0) AS f_BkgExtraSKIPPax,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIP.f_Quantity,0) AS f_BkgExtraSKIPQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIP.f_Adults,0) AS f_BkgExtraSKIPAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIP.f_Children,0) AS f_BkgExtraSKIPChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIP.f_Infants,0) AS f_BkgExtraSKIPInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIP.f_Revenue,0) AS f_BkgExtraSKIPRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIP.f_Cost,0) AS f_BkgExtraSKIPCost,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIT.f_Pax,0) AS f_BkgExtraSKITPax,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIT.f_Quantity,0) AS f_BkgExtraSKITQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIT.f_Adults,0) AS f_BkgExtraSKITAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIT.f_Children,0) AS f_BkgExtraSKITChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIT.f_Infants,0) AS f_BkgExtraSKITInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIT.f_Revenue,0) AS f_BkgExtraSKITRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_SKIT.f_Cost,0) AS f_BkgExtraSKITCost,
    COALESCE(ST_V_EC_EXTRACOSTS_SPIO.f_Pax,0) AS f_BkgExtraSPIOPax,
    COALESCE(ST_V_EC_EXTRACOSTS_SPIO.f_Quantity,0) AS f_BkgExtraSPIOQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_SPIO.f_Adults,0) AS f_BkgExtraSPIOAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_SPIO.f_Children,0) AS f_BkgExtraSPIOChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_SPIO.f_Infants,0) AS f_BkgExtraSPIOInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_SPIO.f_Revenue,0) AS f_BkgExtraSPIORevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_SPIO.f_Cost,0) AS f_BkgExtraSPIOCost,
    COALESCE(ST_V_EC_EXTRACOSTS_SPOR.f_Pax,0) AS f_BkgExtraSPORPax,
    COALESCE(ST_V_EC_EXTRACOSTS_SPOR.f_Quantity,0) AS f_BkgExtraSPORQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_SPOR.f_Adults,0) AS f_BkgExtraSPORAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_SPOR.f_Children,0) AS f_BkgExtraSPORChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_SPOR.f_Infants,0) AS f_BkgExtraSPORInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_SPOR.f_Revenue,0) AS f_BkgExtraSPORRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_SPOR.f_Cost,0) AS f_BkgExtraSPORCost,
    COALESCE(ST_V_EC_EXTRACOSTS_STND.f_Pax,0) AS f_BkgExtraSTNDPax,
    COALESCE(ST_V_EC_EXTRACOSTS_STND.f_Quantity,0) AS f_BkgExtraSTNDQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_STND.f_Adults,0) AS f_BkgExtraSTNDAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_STND.f_Children,0) AS f_BkgExtraSTNDChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_STND.f_Infants,0) AS f_BkgExtraSTNDInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_STND.f_Revenue,0) AS f_BkgExtraSTNDRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_STND.f_Cost,0) AS f_BkgExtraSTNDCost,
    COALESCE(ST_V_EC_EXTRACOSTS_TRAF.f_Pax,0) AS f_BkgExtraTRAFPax,
    COALESCE(ST_V_EC_EXTRACOSTS_TRAF.f_Quantity,0) AS f_BkgExtraTRAFQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_TRAF.f_Adults,0) AS f_BkgExtraTRAFAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_TRAF.f_Children,0) AS f_BkgExtraTRAFChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_TRAF.f_Infants,0) AS f_BkgExtraTRAFInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_TRAF.f_Revenue,0) AS f_BkgExtraTRAFRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_TRAF.f_Cost,0) AS f_BkgExtraTRAFCost,
    COALESCE(ST_V_EC_EXTRACOSTS_XXXX.f_Pax,0) AS f_BkgExtraXXXXPax,
    COALESCE(ST_V_EC_EXTRACOSTS_XXXX.f_Quantity,0) AS f_BkgExtraXXXXQuantity,
    COALESCE(ST_V_EC_EXTRACOSTS_XXXX.f_Adults,0) AS f_BkgExtraXXXXAdults,
    COALESCE(ST_V_EC_EXTRACOSTS_XXXX.f_Children,0) AS f_BkgExtraXXXXChildren,
    COALESCE(ST_V_EC_EXTRACOSTS_XXXX.f_Infants,0) AS f_BkgExtraXXXXInfants,
    COALESCE(ST_V_EC_EXTRACOSTS_XXXX.f_Revenue,0) AS f_BkgExtraXXXXRevenue,
    COALESCE(ST_V_EC_EXTRACOSTS_XXXX.f_Cost,0) AS f_BkgExtraXXXXCost,
    0 AS f_DiffTransportPax,
    0 AS f_DiffTransportQuantity,
    0 AS f_DiffTransportAdults,
    0 AS f_DiffTransportChildren,
    0 AS f_DiffTransportInfants,
    0 AS f_DiffTransportRevenue,
    0 AS f_DiffTransportCost,
    0 AS f_DiffFltPax,
    0 AS f_DiffFltQuantity,
    0 AS f_DiffFltAdults,
    0 AS f_DiffFltChildren,
    0 AS f_DiffFltInfants,
    0 AS f_DiffFltRevenue,
    0 AS f_DiffFltCost,
    0 AS f_DiffFerryPax,
    0 AS f_DiffFerryQuantity,
    0 AS f_DiffFerryAdults,
    0 AS f_DiffFerryChildren,
    0 AS f_DiffFerryInfants,
    0 AS f_DiffFerryRevenue,
    0 AS f_DiffFerryCost,
    0 AS f_DiffTrainPax,
    0 AS f_DiffTrainQuantity,
    0 AS f_DiffTrainAdults,
    0 AS f_DiffTrainChildren,
    0 AS f_DiffTrainInfants,
    0 AS f_DiffTrainRevenue,
    0 AS f_DiffTrainCost,
    0 AS f_DiffAccomPax,
    0 AS f_DiffAccomQuantity,
    0 AS f_DiffAccomAdults,
    0 AS f_DiffAccomChildren,
    0 AS f_DiffAccomInfants,
    0 AS f_DiffAccomRevenue,
    0 AS f_DiffAccomCost,
    0 AS f_DiffExtraACTIPax,
    0 AS f_DiffExtraACTIQuantity,
    0 AS f_DiffExtraACTIAdults,
    0 AS f_DiffExtraACTIChildren,
    0 AS f_DiffExtraACTIInfants,
    0 AS f_DiffExtraACTIRevenue,
    0 AS f_DiffExtraACTICost,
    0 AS f_DiffExtraCARHPax,
    0 AS f_DiffExtraCARHQuantity,
    0 AS f_DiffExtraCARHAdults,
    0 AS f_DiffExtraCARHChildren,
    0 AS f_DiffExtraCARHInfants,
    0 AS f_DiffExtraCARHRevenue,
    0 AS f_DiffExtraCARHCost,
    0 AS f_DiffExtraCARIPax,
    0 AS f_DiffExtraCARIQuantity,
    0 AS f_DiffExtraCARIAdults,
    0 AS f_DiffExtraCARIChildren,
    0 AS f_DiffExtraCARIInfants,
    0 AS f_DiffExtraCARIRevenue,
    0 AS f_DiffExtraCARICost,
    0 AS f_DiffExtraCHLDPax,
    0 AS f_DiffExtraCHLDQuantity,
    0 AS f_DiffExtraCHLDAdults,
    0 AS f_DiffExtraCHLDChildren,
    0 AS f_DiffExtraCHLDInfants,
    0 AS f_DiffExtraCHLDRevenue,
    0 AS f_DiffExtraCHLDCost,
    0 AS f_DiffExtraCLUBPax,
    0 AS f_DiffExtraCLUBQuantity,
    0 AS f_DiffExtraCLUBAdults,
    0 AS f_DiffExtraCLUBChildren,
    0 AS f_DiffExtraCLUBInfants,
    0 AS f_DiffExtraCLUBRevenue,
    0 AS f_DiffExtraCLUBCost,
    0 AS f_DiffExtraCRECPax,
    0 AS f_DiffExtraCRECQuantity,
    0 AS f_DiffExtraCRECAdults,
    0 AS f_DiffExtraCRECChildren,
    0 AS f_DiffExtraCRECInfants,
    0 AS f_DiffExtraCRECRevenue,
    0 AS f_DiffExtraCRECCost,
    0 AS f_DiffExtraEQUIPax,
    0 AS f_DiffExtraEQUIQuantity,
    0 AS f_DiffExtraEQUIAdults,
    0 AS f_DiffExtraEQUIChildren,
    0 AS f_DiffExtraEQUIInfants,
    0 AS f_DiffExtraEQUIRevenue,
    0 AS f_DiffExtraEQUICost,
    0 AS f_DiffExtraEXCUPax,
    0 AS f_DiffExtraEXCUQuantity,
    0 AS f_DiffExtraEXCUAdults,
    0 AS f_DiffExtraEXCUChildren,
    0 AS f_DiffExtraEXCUInfants,
    0 AS f_DiffExtraEXCURevenue,
    0 AS f_DiffExtraEXCUCost,
    0 AS f_DiffExtraFLTRPax,
    0 AS f_DiffExtraFLTRQuantity,
    0 AS f_DiffExtraFLTRAdults,
    0 AS f_DiffExtraFLTRChildren,
    0 AS f_DiffExtraFLTRInfants,
    0 AS f_DiffExtraFLTRRevenue,
    0 AS f_DiffExtraFLTRCost,
    0 AS f_DiffExtraINSRPax,
    0 AS f_DiffExtraINSRQuantity,
    0 AS f_DiffExtraINSRAdults,
    0 AS f_DiffExtraINSRChildren,
    0 AS f_DiffExtraINSRInfants,
    0 AS f_DiffExtraINSRRevenue,
    0 AS f_DiffExtraINSRCost,
    0 AS f_DiffExtraOTHRPax,
    0 AS f_DiffExtraOTHRQuantity,
    0 AS f_DiffExtraOTHRAdults,
    0 AS f_DiffExtraOTHRChildren,
    0 AS f_DiffExtraOTHRInfants,
    0 AS f_DiffExtraOTHRRevenue,
    0 AS f_DiffExtraOTHRCost,
    0 AS f_DiffExtraSKIPPax,
    0 AS f_DiffExtraSKIPQuantity,
    0 AS f_DiffExtraSKIPAdults,
    0 AS f_DiffExtraSKIPChildren,
    0 AS f_DiffExtraSKIPInfants,
    0 AS f_DiffExtraSKIPRevenue,
    0 AS f_DiffExtraSKIPCost,
    0 AS f_DiffExtraSKITPax,
    0 AS f_DiffExtraSKITQuantity,
    0 AS f_DiffExtraSKITAdults,
    0 AS f_DiffExtraSKITChildren,
    0 AS f_DiffExtraSKITInfants,
    0 AS f_DiffExtraSKITRevenue,
    0 AS f_DiffExtraSKITCost,
    0 AS f_DiffExtraSPIOPax,
    0 AS f_DiffExtraSPIOQuantity,
    0 AS f_DiffExtraSPIOAdults,
    0 AS f_DiffExtraSPIOChildren,
    0 AS f_DiffExtraSPIOInfants,
    0 AS f_DiffExtraSPIORevenue,
    0 AS f_DiffExtraSPIOCost,
    0 AS f_DiffExtraSPORPax,
    0 AS f_DiffExtraSPORQuantity,
    0 AS f_DiffExtraSPORAdults,
    0 AS f_DiffExtraSPORChildren,
    0 AS f_DiffExtraSPORInfants,
    0 AS f_DiffExtraSPORRevenue,
    0 AS f_DiffExtraSPORCost,
    0 AS f_DiffExtraSTNDPax,
    0 AS f_DiffExtraSTNDQuantity,
    0 AS f_DiffExtraSTNDAdults,
    0 AS f_DiffExtraSTNDChildren,
    0 AS f_DiffExtraSTNDInfants,
    0 AS f_DiffExtraSTNDRevenue,
    0 AS f_DiffExtraSTNDCost,
    0 AS f_DiffExtraTRAFPax,
    0 AS f_DiffExtraTRAFQuantity,
    0 AS f_DiffExtraTRAFAdults,
    0 AS f_DiffExtraTRAFChildren,
    0 AS f_DiffExtraTRAFInfants,
    0 AS f_DiffExtraTRAFRevenue,
    0 AS f_DiffExtraTRAFCost,
    0 AS f_DiffExtraXXXXPax,
    0 AS f_DiffExtraXXXXQuantity,
    0 AS f_DiffExtraXXXXAdults,
    0 AS f_DiffExtraXXXXChildren,
    0 AS f_DiffExtraXXXXInfants,
    0 AS f_DiffExtraXXXXRevenue,
    0 AS f_DiffExtraXXXXCost
FROM
    AMI_Stage.dbo.ST_PIT_BOOKINGHEADERS ST_PIT_BOOKINGHEADERS
LEFT JOIN
    AMI_GALAXY.dbo.CONF_DT_BOOKING CONF_DT_BOOKING
    ON
        CONF_DT_BOOKING.i_SK_Bkg = ST_PIT_BOOKINGHEADERS.I_SK_BKG
LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_XXXX
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_XXXX.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_XXXX.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_XXXX.i_BK_ExtraType = 'XXXX'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_TRAF
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_TRAF.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_TRAF.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_TRAF.i_BK_ExtraType = 'TRAF'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_STND
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_STND.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_STND.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_STND.i_BK_ExtraType = 'STND'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_SPOR
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_SPOR.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_SPOR.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_SPOR.i_BK_ExtraType = 'SPOR'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_SPIO
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_SPIO.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_SPIO.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_SPIO.i_BK_ExtraType = 'SPIO'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_SKIT
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_SKIT.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_SKIT.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_SKIT.i_BK_ExtraType = 'SKIT'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_SKIP
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_SKIP.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_SKIP.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_SKIP.i_BK_ExtraType = 'SKIP'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_OTHR
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_OTHR.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_OTHR.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_OTHR.i_BK_ExtraType = 'OTHR'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_INSR
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_INSR.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_INSR.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_INSR.i_BK_ExtraType = 'INSR'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_FLTR
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_FLTR.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_FLTR.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_FLTR.i_BK_ExtraType = 'FLTR'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_EXCU
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_EXCU.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_EXCU.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_EXCU.i_BK_ExtraType = 'EXCU'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_EQUI
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_EQUI.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_EQUI.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_EQUI.i_BK_ExtraType = 'EQUI'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_CREC
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_CREC.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_CREC.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_CREC.i_BK_ExtraType = 'CREC'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_CLUB
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_CLUB.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_CLUB.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_CLUB.i_BK_ExtraType = 'CLUB'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_CHLD
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_CHLD.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_CHLD.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_CHLD.i_BK_ExtraType = 'CHLD'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_CARI
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_CARI.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_CARI.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_CARI.i_BK_ExtraType = 'CARI'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_CARH
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_CARH.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_CARH.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_CARH.i_BK_ExtraType = 'CARH'

LEFT JOIN
    AMI_Stage.dbo.ST_V_EC_EXTRACOSTS ST_V_EC_EXTRACOSTS_ACTI
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_EC_EXTRACOSTS_ACTI.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_EC_EXTRACOSTS_ACTI.i_BK_Version
        AND
        ST_V_EC_EXTRACOSTS_ACTI.i_BK_ExtraType = 'ACTI'
LEFT JOIN
    AMI_Stage.dbo.ST_V_AC_ACCOMCOSTS ST_V_AC_ACCOMCOSTS
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_AC_ACCOMCOSTS.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_AC_ACCOMCOSTS.i_BK_Version
LEFT JOIN
    AMI_Stage.dbo.ST_V_FC_FLIGHTCOSTS ST_V_FC_FLIGHTCOSTS
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_FC_FLIGHTCOSTS.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_FC_FLIGHTCOSTS.i_BK_Version
LEFT JOIN
    AMI_Stage.dbo.ST_V_FC_FLIGHTCOSTS ST_V_FC_FLIGHTCOSTS_AIR
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_FC_FLIGHTCOSTS_AIR.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_FC_FLIGHTCOSTS_AIR.i_BK_Version
        AND
        ST_V_FC_FLIGHTCOSTS_AIR.i_BK_TransportType = 'AIR'
LEFT JOIN
    AMI_Stage.dbo.ST_V_FC_FLIGHTCOSTS ST_V_FC_FLIGHTCOSTS_FER
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_FC_FLIGHTCOSTS_FER.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_FC_FLIGHTCOSTS_FER.i_BK_Version
        AND
        ST_V_FC_FLIGHTCOSTS_FER.i_BK_TransportType = 'FER'
LEFT JOIN
    AMI_Stage.dbo.ST_V_FC_FLIGHTCOSTS ST_V_FC_FLIGHTCOSTS_TRN
    ON
        CONF_DT_BOOKING.i_BK_BkgConcat = ST_V_FC_FLIGHTCOSTS_TRN.i_BK_Bkg
        AND
        ST_PIT_BOOKINGHEADERS.I_SK_VERSION = ST_V_FC_FLIGHTCOSTS_TRN.i_BK_Version
        AND
        ST_V_FC_FLIGHTCOSTS_TRN.i_BK_TransportType = 'TRN'

1 个解决方案

#1


3  

First of all, you can try ISNULL, which has a better performance (but not as much as you need), however it is quicker.

首先,您可以尝试ISNULL,它具有更好的性能(但不是您需要的更多),但它更快。

Here is a reference for an older StackOverlow thread: Which is quicker COALESCE OR ISNULL?

这是一个旧的StackOverlow线程的参考:哪个更快COALESCE或ISNULL?

UPDATED:

更新:

It meant a huge difference in performance:

这意味着性能的巨大差异:

"Marcus Culver: Across 730,000 rows 154 columns being ISNULL'd took 00:02:34 as opposed to coalesce at 01:32:43"

“马库斯·卡尔弗(Marcus Culver):截止到730,000行154列是ISNULL的,我们采取的是00:02:34而不是在01:32:43合并

#1


3  

First of all, you can try ISNULL, which has a better performance (but not as much as you need), however it is quicker.

首先,您可以尝试ISNULL,它具有更好的性能(但不是您需要的更多),但它更快。

Here is a reference for an older StackOverlow thread: Which is quicker COALESCE OR ISNULL?

这是一个旧的StackOverlow线程的参考:哪个更快COALESCE或ISNULL?

UPDATED:

更新:

It meant a huge difference in performance:

这意味着性能的巨大差异:

"Marcus Culver: Across 730,000 rows 154 columns being ISNULL'd took 00:02:34 as opposed to coalesce at 01:32:43"

“马库斯·卡尔弗(Marcus Culver):截止到730,000行154列是ISNULL的,我们采取的是00:02:34而不是在01:32:43合并