CONULTA MUY LENTA
Publicado por erikur raudi (4 intervenciones) el 31/03/2010 21:53:13
Hola, buen dìa a todos.
Tengo una consulta compuesta que tarda demasiado en ejecutarse y mostrar los resultados, esta consulta la ejecuto desde un programa en VB 6 y la base que utilizo es Access y SQL Server.
El problema radica en el tiempo de ejecución ya que la consulta es un select e insert al mismo tiempo, como son demasiados datos tarda aproximadamente 50 min en ejecutarse, tiempo en el que mi programa se pasma y parece que no esta haciendo nada y por tanto los clientes se desesperan.
Aqui un ejemplo de mi consulta:
INSERT INTO Tabla1
SELECT Campo1, Campo2, Campo3, Campo4,…, CampoN
FROM Tabla2 INNER JOIN Tabla3 ON Tabla2.Campo1=Tabla3.Campo1
WHERE Campo3 not in (select Campo3 from Tabla1) and Campo4 <> 'A' and Campo2 > '0.000000000'
OR Campo3 not in (select Campo3 from Tabla1) and Campo4 <> 'B' and Campo2 > '0.000000000'
OR Campo3 not in (select Campo3 from Tabla1) and Campo4 <>'C' and Campo2 > '0.000000000'
OR Campo3 not in (select Campo3 from Tabla1) and Campo4 <> 'D' and Campo2 > '0.000000000'
OR Campo3 not in (select Campo3 from Tabla1) and Campo4 <> 'E' and Campo2 > '0.000000000'
OR Campo3 not in (select Campo3 from Tabla1) and Campo4 <> 'F' and Campo2 > '0.000000000'
OR Campo3 not in (select Campo3 from Tabla1) and Campo4 <> 'G' and Campo2 > '0.000000000'
¿Como puedo optimizar la consulta y que se ejecute en menor tiempo?
De antemano, gracias por su ayuda.
Hasta pronto.
Tengo una consulta compuesta que tarda demasiado en ejecutarse y mostrar los resultados, esta consulta la ejecuto desde un programa en VB 6 y la base que utilizo es Access y SQL Server.
El problema radica en el tiempo de ejecución ya que la consulta es un select e insert al mismo tiempo, como son demasiados datos tarda aproximadamente 50 min en ejecutarse, tiempo en el que mi programa se pasma y parece que no esta haciendo nada y por tanto los clientes se desesperan.
Aqui un ejemplo de mi consulta:
INSERT INTO Tabla1
SELECT Campo1, Campo2, Campo3, Campo4,…, CampoN
FROM Tabla2 INNER JOIN Tabla3 ON Tabla2.Campo1=Tabla3.Campo1
WHERE Campo3 not in (select Campo3 from Tabla1) and Campo4 <> 'A' and Campo2 > '0.000000000'
OR Campo3 not in (select Campo3 from Tabla1) and Campo4 <> 'B' and Campo2 > '0.000000000'
OR Campo3 not in (select Campo3 from Tabla1) and Campo4 <>'C' and Campo2 > '0.000000000'
OR Campo3 not in (select Campo3 from Tabla1) and Campo4 <> 'D' and Campo2 > '0.000000000'
OR Campo3 not in (select Campo3 from Tabla1) and Campo4 <> 'E' and Campo2 > '0.000000000'
OR Campo3 not in (select Campo3 from Tabla1) and Campo4 <> 'F' and Campo2 > '0.000000000'
OR Campo3 not in (select Campo3 from Tabla1) and Campo4 <> 'G' and Campo2 > '0.000000000'
¿Como puedo optimizar la consulta y que se ejecute en menor tiempo?
De antemano, gracias por su ayuda.
Hasta pronto.
Valora esta pregunta
0