Hello,
the following view takes around 4 minutes to run. it is pulling data from a table that has four million rows.
how to optimize this view to run faster?
create or replace
algorithm = UNDEFINED view `vw_fltadjprodcap` (`AdjId`,
`AdjStat`,
`NetOptDt`,
`AdjDesc`,
`UserFldr`,
`C64`,
`LegOrig`,
`LegDest`,
`StartDepDt`,
`EndDepDt`,
`StartDFD`,
`EndDFD`,
`StartDepTm`,
`EndDepTm`,
`DOWGrp`,
`ApplStartDt`,
`ApplEndDt`,
`FltNbr`,
`EquipCd`,
`DmndDfltInd`,
`PolicyNm`,
`MINMAXCAPDesc`,
`MINMAXCAPParm`,
`InhbtWtlstIndicator`,
`CloseWtlstIndicator`,
`CloseWtlstThld`,
`BookCls`,
`POS`,
`Bckt`,
`BcktBrkptNbr`,
`Cabin`,
`CondAdjParm`,
`ApplFltCnt`,
`HierNbr`,
`FailRsnCd`,
`FailRsnDesc`,
`UploadId`,
`CreateBy`,
`AdjCreateDt`,
`ModfBy`,
`ModfDt`,
`LastApplDt`,
`LastProcDt`,
`AdjTypeId`,
`ActnPlnID`,
`SubmImmedInd`,
`AdjIDRel`,
`AdjRel`,
`AdjIDShr`) as
select
`fapc`.`FlightAdjustmentProductCapID` as `AdjId`,
upper(`state`.`AdjustmentStateName`) as `AdjStat`,
`fapc`.`LastProcessedDt` as `NetOptDt`,
`fapc`.`Description` as `AdjDesc`,
`fapc`.`UserFolder` as `UserFldr`,
`c64`.`C64Code` as `C64`,
`orgapt`.`AirportCode` as `LegOrig`,
`destapt`.`AirportCode` as `LegDest`,
`fapc`.`DeptDtFrom` as `StartDepDt`,
`fapc`.`DeptDtTo` as `EndDepDt`,
`fapc`.`DaysFromDeptRangeFrom` as `StartDFD`,
`fapc`.`DaysFromDeptRangeTo` as `EndDFD`,
`fapc`.`DeptTmFrom` as `StartDepTm`,
`fapc`.`DeptTmTo` as `EndDepTm`,
`d`.`DOWGrp` as `DOWGrp`,
`fapc`.`ApplyDtFrom` as `ApplStartDt`,
`fapc`.`ApplyDtTo` as `ApplEndDt`,
`fapc`.`FlightNumber` as `FltNbr`,
`e`.`EquipTypeCd` as `EquipCd`,
`fapc`.`DemandDefaultIndicator` as `DmndDfltInd`,
`amt`.`PolicyTypeName` as `PolicyNm`,
`fapc`.`MinMaxCpctyCode` as `MINMAXCAPDesc`,
`fapc`.`MinMaxCpctyValue` as `MINMAXCAPParm`,
`fapc`.`InhbtWtlstIndicator` as `InhbtWtlstIndicator`,
`fapc`.`CloseWtlstIndicator` as `CloseWtlstIndicator`,
`fapc`.`CloseWtlstThld` as `CloseWtlstThld`,
`bc`.`BookingClassCode` as `BookCls`,
`pc`.`POSCountryCode` as `POS`,
`fapc`.`BucketNumber` as `Bckt`,
`fapc`.`BucketBreakpoint` as `BcktBrkptNbr`,
`c`.`CabinCode` as `Cabin`,
`fapc`.`ConditionalAdjustment` as `CondAdjParm`,
`fapc`.`NumberOfFlights` as `ApplFltCnt`,
`fapc`.`HierarchyNumber` as `HierNbr`,
`fr`.`FailureCode` as `FailRsnCd`,
`fr`.`FailureReason` as `FailRsnDesc`,
`fapc`.`AdjustmentUploadID` as `UploadId`,
concat(upper(`usr`.`FirstName`), ' ', upper(`usr`.`LastName`)) as `CreateBy`,
`fapc`.`CreationDt` as `AdjCreateDt`,
concat(upper(`usr2`.`FirstName`), ' ', upper(`usr2`.`LastName`)) as `ModfBy`,
`fapc`.`ModifiedDt` as `ModfDt`,
`fapc`.`LastApplyDt` as `LastApplDt`,
`fapc`.`ActualLastProcessedDt` as `LastProcDt`,
`fapc`.`AdjustmentTypeID` as `AdjTypeId`,
`fapc`.`ActionPlanID` as `ActnPlnID`,
`fapc`.`SubmitImmediatelyIndicator` as `SubmImmedInd`,
(case
when (`fapc`.`AlternateVersionID` is null) then null
when ((`fapc`.`AlternateVersionID` is not null)
and (`fapc`.`AdjustmentStateID` not in (2, 3, 8))) then null
else `fapc`.`AlternateVersionID`
end) as `AdjIDRel`,
(case
when (`fapc`.`AlternateVersionID` is null) then 'FALSE'
when ((`fapc`.`AlternateVersionID` is not null)
and (`fapc`.`AdjustmentStateID` not in (2, 3, 8))) then 'FALSE'
else 'TRUE'
end) as `AdjRel`,
(case
when (`fapc`.`AlternateVersionID` is null) then `fapc`.`FlightAdjustmentProductCapID`
when ((`fapc`.`AlternateVersionID` is not null)
and (`fapc`.`AdjustmentStateID` <> 2)) then `fapc`.`FlightAdjustmentProductCapID`
when ((`fapc`.`AlternateVersionID` is not null)
and (`fapc`.`AdjustmentStateID` = 2)) then `fapc`.`AlternateVersionID`
end) as `AdjIDShr`
from
(((((((((((((`flightadjustmentproductcap` `fapc`
left join `airport` `orgapt` on
((`fapc`.`LegOrigAirport` = `orgapt`.`AirportID`)))
left join `airport` `destapt` on
((`fapc`.`LegDestinationAirport` = `destapt`.`AirportID`)))
join `authuser` `usr` on
((`fapc`.`CreatedBy` = `usr`.`AuthUserID`)))
left join `authuser` `usr2` on
((`fapc`.`ModifiedBy` = `usr2`.`AuthUserID`)))
join `adjustmentstate` `state` on
((`fapc`.`AdjustmentStateID` = `state`.`AdjustmentStateID`)))
left join `c64definition` `c64` on
((`c64`.`C64DefinitionAdjustmentID` = `fapc`.`C64DefinitionAdjustmentID`)))
left join `dowmapping` `d` on
((`fapc`.`DOW` = `d`.`DOW`)))
left join `failurereason` `fr` on
((`fr`.`FailureReasonID` = `fapc`.`FailureReasonID`)))
left join `equip` `e` on
((`e`.`EquipID` = `fapc`.`EquipID`)))
left join `bookingclass` `bc` on
((`fapc`.`BookingClassID` = `bc`.`BookingClassID`)))
left join `poscountry` `pc` on
((`pc`.`POSCountryID` = `fapc`.`POSCountryID`)))
left join `cabin` `c` on
((`c`.`CabinID` = `fapc`.`CabinID`)))
left join `policytype` `amt` on
((`amt`.`PolicyTypeID` = `fapc`.`PolicyTypeID`)))
where
((`fapc`.`DeletedIndicator` = 0)
and (`fapc`.`TemplateIndicator` = 0)
and `fapc`.`FlightAdjustmentProductCapID` in (
select
`flightadjustmentproductcap`.`AlternateVersionID`
from
`flightadjustmentproductcap`
where
((`flightadjustmentproductcap`.`AlternateVersionID` is not null)
and (`flightadjustmentproductcap`.`AdjustmentStateID` not in (2, 3))
and (`flightadjustmentproductcap`.`DeletedIndicator` = 0))) is false);