Long page load / <cfquery> issue
Hi all,
I am developing a CFM page that is essentially a data dump of data that resides in our AS400. This is really my first coldfusion project, so I am still learning a few ins and outs of the language. I have a query, and it's taking over 15 minutes to return data. Is there a tag I could use to speed this along, or is my syntax wrong, or any query optimization suggestions? When I remove my <cfquery tag> everything loads fine. Any assistance would be appreciated. Thanks in advance!!! Here is my code:
<cfquery name="GetData" datasource="Web_Catalog" result="GetDataResult" >
SELECT DISTINCT WSFILE001.DEL1.DDEAL## AS DEAL## , WSFILE001.DEL1.DVER## AS VERSION##, WSFILE001.PRD1.PGROUP AS GROUP, WSFILE001.PRD1.PPROD## AS ITEM##,
WSFILE001.PRD1.PDESC AS PRODUCT_DESC, WSFILE001.PRD1.PSIZE AS SIZE,
(SELECT MAX(WSFILE001.COS1.CFOBP) FROM WSFILE001.COS1 WHERE WSFILE001.PRD1.PPROD## = WSFILE001.COS1.COSPRD AND WSFILE001.COS1.COSDAT < '1090505') AS FOB,
(SELECT MAX(WSFILE001.COS1.CFRTP) FROM WSFILE001.COS1 WHERE WSFILE001.PRD1.PPROD## = WSFILE001.COS1.COSPRD AND WSFILE001.COS1.COSDAT < '1090505') AS FREIGHT,
WSFILE001.COS1.CPURCP AS PA,
(SELECT MAX(WSFILE001.COS1.CDEIM) FROM WSFILE001.COS1 WHERE WSFILE001.PRD1.PPROD## = WSFILE001.COS1.COSPRD AND WSFILE001.COS1.COSDAT < '1090505') AS OCEAN_FREIGHT,
WSFILE001.COS1.CDUTYP AS IMPORT_DUTY, WSFILE001.COS1.CPBANK AS BANK, WSFILE001.COS1.CMISC AS MISC, WSFILE001.COS1.COTAXP AS FEDERAL_TAXES, WSFILE001.COS1.CSTAXC AS STATE_TAXES,
(SELECT MAX(WSFILE001.PRC1.PSEL8P) FROM WSFILE001.PRC1 WHERE WSFILE001.PRD1.PPROD## = WSFILE001.PRC1.PRCPRD AND WSFILE001.COS1.COSDAT < '1090505') AS LANDED,
(SELECT MAX(WSFILE001.PRC1.PSEL1P) FROM WSFILE001.PRC1 WHERE WSFILE001.PRD1.PPROD## = WSFILE001.PRC1.PRCPRD AND WSFILE001.COS1.COSDAT < '1090505') AS LIST_PRICE,
WSFILE001.NDEP1.NPRC01 AS DA,
((SELECT MAX(WSFILE001.PRC1.PSEL8P) FROM WSFILE001.PRC1 WHERE WSFILE001.PRD1.PPROD## = WSFILE001.PRC1.PRCPRD AND WSFILE001.COS1.COSDAT < '1090505') - WSFILE001.NDEP1.NPRC01) AS NETCOST,
WSFILE001.DEL1.DM1 AS QUANTITY
FROM WSFILE001.DEL1, WSFILE001.PDEL, WSFILE001.PRD1, WSFILE001.COS1, WSFILE001.PRC1, WSFILE001.NDEP1, WSFILE001.DIS1
WHERE
WSFILE001.DEL1.DDEAL## > '71' AND
WSFILE001.DEL1.DDEAL## < '1400' AND
WSFILE001.PRD1.PGROUP = WSFILE001.PDEL.PDGRUP AND
WSFILE001.PRD1.PPROD## = WSFILE001.COS1.COSPRD AND
WSFILE001.PRD1.PPROD## = WSFILE001.NDEP1.NETPRD AND
WSFILE001.PRD1.PPROD## = WSFILE001.PRC1.PRCPRD AND
WSFILE001.PRD1.PSUPPL = WSFILE001.PDEL.PDCMP AND
WSFILE001.DEL1.DDEAL## > 0 AND WSFILE001.DEL1.DDEAL## =
COALESCE (CASE WHEN WSFILE001.PDEL.PDX = 0 THEN NULL ELSE WSFILE001.PDEL.PDX END,
CASE WHEN WSFILE001.PDEL.PDW = 0 THEN NULL ELSE WSFILE001.PDEL.PDW END,
CASE WHEN WSFILE001.PDEL.PDV = 0 THEN NULL ELSE WSFILE001.PDEL.PDV END,
CASE WHEN WSFILE001.PDEL.PDU = 0 THEN NULL ELSE WSFILE001.PDEL.PDU END,
CASE WHEN WSFILE001.PDEL.PDT = 0 THEN NULL ELSE WSFILE001.PDEL.PDT END,
CASE WHEN WSFILE001.PDEL.PDS = 0 THEN NULL ELSE WSFILE001.PDEL.PDS END,
CASE WHEN WSFILE001.PDEL.PDR = 0 THEN NULL ELSE WSFILE001.PDEL.PDR END,
CASE WHEN WSFILE001.PDEL.PDQ = 0 THEN NULL ELSE WSFILE001.PDEL.PDQ END,
CASE WHEN WSFILE001.PDEL.PDP = 0 THEN NULL ELSE WSFILE001.PDEL.PDP END,
CASE WHEN WSFILE001.PDEL.PDO = 0 THEN NULL ELSE WSFILE001.PDEL.PDO END,
CASE WHEN WSFILE001.PDEL.PDN = 0 THEN NULL ELSE WSFILE001.PDEL.PDN END,
CASE WHEN WSFILE001.PDEL.PDM = 0 THEN NULL ELSE WSFILE001.PDEL.PDM END,
CASE WHEN WSFILE001.PDEL.PDL = 0 THEN NULL ELSE WSFILE001.PDEL.PDL END,
CASE WHEN WSFILE001.PDEL.PDK = 0 THEN NULL ELSE WSFILE001.PDEL.PDK END,
CASE WHEN WSFILE001.PDEL.PDJ = 0 THEN NULL ELSE WSFILE001.PDEL.PDJ END,
CASE WHEN WSFILE001.PDEL.PDI = 0 THEN NULL ELSE WSFILE001.PDEL.PDI END,
CASE WHEN WSFILE001.PDEL.PDH = 0 THEN NULL ELSE WSFILE001.PDEL.PDH END,
CASE WHEN WSFILE001.PDEL.PDG = 0 THEN NULL ELSE WSFILE001.PDEL.PDG END,
CASE WHEN WSFILE001.PDEL.PDF = 0 THEN NULL ELSE WSFILE001.PDEL.PDF END,
CASE WHEN WSFILE001.PDEL.PDE = 0 THEN NULL ELSE WSFILE001.PDEL.PDE END,
CASE WHEN WSFILE001.PDEL.PDD = 0 THEN NULL ELSE WSFILE001.PDEL.PDD END,
CASE WHEN WSFILE001.PDEL.PDC = 0 THEN NULL ELSE WSFILE001.PDEL.PDC END,
CASE WHEN WSFILE001.PDEL.PDB = 0 THEN NULL ELSE WSFILE001.PDEL.PDB END,
CASE WHEN WSFILE001.PDEL.PDA = 0 THEN NULL ELSE WSFILE001.PDEL.PDA END)
AND
WSFILE001.DEL1.DVER## > 0 AND WSFILE001.DEL1.DVER## =
COALESCE (CASE WHEN WSFILE001.PDEL.PDVX = 0 THEN NULL ELSE WSFILE001.PDEL.PDVX END,
CASE WHEN WSFILE001.PDEL.PDVX = 0 THEN NULL ELSE WSFILE001.PDEL.PDVW END,
CASE WHEN WSFILE001.PDEL.PDVX = 0 THEN NULL ELSE WSFILE001.PDEL.PDVV END,
CASE WHEN WSFILE001.PDEL.PDVU = 0 THEN NULL ELSE WSFILE001.PDEL.PDVU END,
CASE WHEN WSFILE001.PDEL.PDVT = 0 THEN NULL ELSE WSFILE001.PDEL.PDVT END,
CASE WHEN WSFILE001.PDEL.PDVS = 0 THEN NULL ELSE WSFILE001.PDEL.PDVS END,
CASE WHEN WSFILE001.PDEL.PDVR = 0 THEN NULL ELSE WSFILE001.PDEL.PDVR END,
CASE WHEN WSFILE001.PDEL.PDVQ = 0 THEN NULL ELSE WSFILE001.PDEL.PDVQ END,
CASE WHEN WSFILE001.PDEL.PDVP = 0 THEN NULL ELSE WSFILE001.PDEL.PDVP END,
CASE WHEN WSFILE001.PDEL.PDVO = 0 THEN NULL ELSE WSFILE001.PDEL.PDVO END,
CASE WHEN WSFILE001.PDEL.PDVN = 0 THEN NULL ELSE WSFILE001.PDEL.PDVN END,
CASE WHEN WSFILE001.PDEL.PDVM = 0 THEN NULL ELSE WSFILE001.PDEL.PDVM END,
CASE WHEN WSFILE001.PDEL.PDVL = 0 THEN NULL ELSE WSFILE001.PDEL.PDVL END,
CASE WHEN WSFILE001.PDEL.PDVK = 0 THEN NULL ELSE WSFILE001.PDEL.PDVK END,
CASE WHEN WSFILE001.PDEL.PDVJ = 0 THEN NULL ELSE WSFILE001.PDEL.PDVJ END,
CASE WHEN WSFILE001.PDEL.PDVI = 0 THEN NULL ELSE WSFILE001.PDEL.PDVI END,
CASE WHEN WSFILE001.PDEL.PDVH = 0 THEN NULL ELSE WSFILE001.PDEL.PDVH END,
CASE WHEN WSFILE001.PDEL.PDVG = 0 THEN NULL ELSE WSFILE001.PDEL.PDVG END,
CASE WHEN WSFILE001.PDEL.PDVF = 0 THEN NULL ELSE WSFILE001.PDEL.PDVF END,
CASE WHEN WSFILE001.PDEL.PDVE = 0 THEN NULL ELSE WSFILE001.PDEL.PDVE END,
CASE WHEN WSFILE001.PDEL.PDVD = 0 THEN NULL ELSE WSFILE001.PDEL.PDVD END,
CASE WHEN WSFILE001.PDEL.PDVC = 0 THEN NULL ELSE WSFILE001.PDEL.PDVC END,
CASE WHEN WSFILE001.PDEL.PDVB = 0 THEN NULL ELSE WSFILE001.PDEL.PDVB END,
CASE WHEN WSFILE001.PDEL.PDVA = 0 THEN NULL ELSE WSFILE001.PDEL.PDVA END)
AND
WSFILE001.DEL1.DVER## > 0 AND WSFILE001.DEL1.DM1 =
COALESCE (CASE WHEN WSFILE001.DEL1.DVER## = 12 THEN WSFILE001.DEL1.DM12 ELSE NULL END,
CASE WHEN WSFILE001.DEL1.DVER## = 11 THEN WSFILE001.DEL1.DM11 ELSE NULL END,
CASE WHEN WSFILE001.DEL1.DVER## = 10 THEN WSFILE001.DEL1.DM10 ELSE NULL END,
CASE WHEN WSFILE001.DEL1.DVER## = 9 THEN WSFILE001.DEL1.DM9 ELSE NULL END,
CASE WHEN WSFILE001.DEL1.DVER## = 8 THEN WSFILE001.DEL1.DM8 ELSE NULL END,
CASE WHEN WSFILE001.DEL1.DVER## = 7 THEN WSFILE001.DEL1.DM7 ELSE NULL END,
CASE WHEN WSFILE001.DEL1.DVER## = 6 THEN WSFILE001.DEL1.DM6 ELSE NULL END,
CASE WHEN WSFILE001.DEL1.DVER## = 5 THEN WSFILE001.DEL1.DM5 ELSE NULL END,
CASE WHEN WSFILE001.DEL1.DVER## = 4 THEN WSFILE001.DEL1.DM4 ELSE NULL END,
CASE WHEN WSFILE001.DEL1.DVER## = 3 THEN WSFILE001.DEL1.DM3 ELSE NULL END,
CASE WHEN WSFILE001.DEL1.DVER## = 2 THEN WSFILE001.DEL1.DM2 ELSE NULL END,
CASE WHEN WSFILE001.DEL1.DVER## = 1 THEN WSFILE001.DEL1.DM1 ELSE NULL END)
AND
WSFILE001.NDEP1.NPRC01 =
COALESCE (CASE WHEN WSFILE001.NDEP1.NPRC01 > MIN(WSFILE001.NDEP1.NPRC02, WSFILE001.NDEP1.NPRC03, WSFILE001.NDEP1.NPRC04, WSFILE001.NDEP1.NPRC05, WSFILE001.NDEP1.NPRC06, WSFILE001.NDEP1.NPRC07,
WSFILE001.NDEP1.NPRC08, WSFILE001.NDEP1.NPRC09, WSFILE001.NDEP1.NPRC10) THEN WSFILE001.NDEP1.NPRC01 ELSE NULL END,
CASE WHEN WSFILE001.NDEP1.NPRC02 > MIN(WSFILE001.NDEP1.NPRC01, WSFILE001.NDEP1.NPRC03, WSFILE001.NDEP1.NPRC04, WSFILE001.NDEP1.NPRC05, WSFILE001.NDEP1.NPRC06, WSFILE001.NDEP1.NPRC07,
WSFILE001.NDEP1.NPRC08, WSFILE001.NDEP1.NPRC09, WSFILE001.NDEP1.NPRC10) THEN WSFILE001.NDEP1.NPRC01 ELSE NULL END,
CASE WHEN WSFILE001.NDEP1.NPRC03 > MIN(WSFILE001.NDEP1.NPRC01, WSFILE001.NDEP1.NPRC02, WSFILE001.NDEP1.NPRC04, WSFILE001.NDEP1.NPRC05, WSFILE001.NDEP1.NPRC06, WSFILE001.NDEP1.NPRC07,
WSFILE001.NDEP1.NPRC08, WSFILE001.NDEP1.NPRC09, WSFILE001.NDEP1.NPRC10) THEN WSFILE001.NDEP1.NPRC01 ELSE NULL END,
CASE WHEN WSFILE001.NDEP1.NPRC04 > MIN(WSFILE001.NDEP1.NPRC01, WSFILE001.NDEP1.NPRC02, WSFILE001.NDEP1.NPRC03, WSFILE001.NDEP1.NPRC05, WSFILE001.NDEP1.NPRC06, WSFILE001.NDEP1.NPRC07,
WSFILE001.NDEP1.NPRC08, WSFILE001.NDEP1.NPRC09, WSFILE001.NDEP1.NPRC10) THEN WSFILE001.NDEP1.NPRC01 ELSE NULL END,
CASE WHEN WSFILE001.NDEP1.NPRC05 > MIN(WSFILE001.NDEP1.NPRC01, WSFILE001.NDEP1.NPRC02, WSFILE001.NDEP1.NPRC03, WSFILE001.NDEP1.NPRC04, WSFILE001.NDEP1.NPRC06, WSFILE001.NDEP1.NPRC07,
WSFILE001.NDEP1.NPRC08, WSFILE001.NDEP1.NPRC09, WSFILE001.NDEP1.NPRC10) THEN WSFILE001.NDEP1.NPRC01 ELSE NULL END,
CASE WHEN WSFILE001.NDEP1.NPRC06 > MIN(WSFILE001.NDEP1.NPRC01, WSFILE001.NDEP1.NPRC02, WSFILE001.NDEP1.NPRC03, WSFILE001.NDEP1.NPRC04, WSFILE001.NDEP1.NPRC05, WSFILE001.NDEP1.NPRC07,
WSFILE001.NDEP1.NPRC08, WSFILE001.NDEP1.NPRC09, WSFILE001.NDEP1.NPRC10) THEN WSFILE001.NDEP1.NPRC01 ELSE NULL END,
CASE WHEN WSFILE001.NDEP1.NPRC07 > MIN(WSFILE001.NDEP1.NPRC01, WSFILE001.NDEP1.NPRC02, WSFILE001.NDEP1.NPRC03, WSFILE001.NDEP1.NPRC04, WSFILE001.NDEP1.NPRC05, WSFILE001.NDEP1.NPRC06,
WSFILE001.NDEP1.NPRC08, WSFILE001.NDEP1.NPRC09, WSFILE001.NDEP1.NPRC10) THEN WSFILE001.NDEP1.NPRC01 ELSE NULL END,
CASE WHEN WSFILE001.NDEP1.NPRC08 > MIN(WSFILE001.NDEP1.NPRC01, WSFILE001.NDEP1.NPRC02, WSFILE001.NDEP1.NPRC03, WSFILE001.NDEP1.NPRC04, WSFILE001.NDEP1.NPRC05, WSFILE001.NDEP1.NPRC06,
WSFILE001.NDEP1.NPRC07, WSFILE001.NDEP1.NPRC09, WSFILE001.NDEP1.NPRC10) THEN WSFILE001.NDEP1.NPRC01 ELSE NULL END,
CASE WHEN WSFILE001.NDEP1.NPRC09 > MIN(WSFILE001.NDEP1.NPRC01, WSFILE001.NDEP1.NPRC02, WSFILE001.NDEP1.NPRC03, WSFILE001.NDEP1.NPRC04, WSFILE001.NDEP1.NPRC05, WSFILE001.NDEP1.NPRC06,
WSFILE001.NDEP1.NPRC07, WSFILE001.NDEP1.NPRC08, WSFILE001.NDEP1.NPRC10) THEN WSFILE001.NDEP1.NPRC01 ELSE NULL END,
CASE WHEN WSFILE001.NDEP1.NPRC10 > MIN(WSFILE001.NDEP1.NPRC01, WSFILE001.NDEP1.NPRC02, WSFILE001.NDEP1.NPRC03, WSFILE001.NDEP1.NPRC04, WSFILE001.NDEP1.NPRC05, WSFILE001.NDEP1.NPRC06,
WSFILE001.NDEP1.NPRC07, WSFILE001.NDEP1.NPRC08, WSFILE001.NDEP1.NPRC09) THEN WSFILE001.NDEP1.NPRC01 ELSE NULL END)
ORDER BY DEAL##
</cfquery>
