Hi everyone,
I need to improve a query that I use in a cobol program. This query takes 3 minutes and I need to reduce the times. The query is something like that:
The query is correct, but the problem is that TABLAA has 25 million records and is slow. I am not an expert in SQL and have looked for some ways to improve it but not long ago, is it possible to find a way to do the SELECT (MAX) in another way? I think that may be the problem. The point is that I need to match two tables and choose the maximum date for each of the records.
Thank you very much for your attention
I need to improve a query that I use in a cobol program. This query takes 3 minutes and I need to reduce the times. The query is something like that:
PHP Code:
SELECT B.CLIENT, B.TYPE, B.DOMAIN, B.REFERENCIA,
B.AMOUNT , A.AMOUNT, A.DATEFIN, A.TYPODATO
FROM TABLEA AS A JOIN TABLEB AS B ON
A.CLIENT = B.CLIENT WHERE
B.AMOUNT <> 0 AND B.OPERAC <> "L" AND
B.DOMAIN IN ("XXX", "TTT",
"OOO") AND A.DATEFIN= (SELECT MAX(A.DATEFIN)
FROM TABLEA WHERE A.CLIENT= B.CLIENT) AND
B.TYPODATO = "J" AND A.REFERENCIA = B.REFERENCIA
AND B.CLIENT IN (SELECT C.CLIENT
FROM TABLEC AS C WHERE C.STATUS <> "A")
AND B.CLIENT IN (SELECT D.CLIENT
FROM TABLED AS D WHERE D.STATUS <> "A")
AND A.AMOUNT <> B.AMOUNT
AND B.TYPE = "000" AND A.TYPODATO2 = "O"
AND B.TYPE = "000"
Thank you very much for your attention
Comment