Problema Con Union

30/08/2005 - 14:48 por jrodriguezr | Informe spam
Wenas a todos.

Tengo un pequeño gran problema, y a ver si me podeis ayudar: dispong
de una query de cierta complejidad, pero que basicamente se basa de do
querys unidas por una UNION.
Esta query lleva ejecutandose diariamente sin ningún problema (n
realiza operaciones de escritura, basicamente SELECT's y JOIN's).

El problema me lo ha comenzado a dar esta semana: el tiempo d
ejecución que consumia la query era aproximadamente de 10 minutos..
ahora me tarda mas de una hora (no me he esperado a que acabara).

Datos que os puedo dar:
- El servidor trabaja en esa query (durante toda la hora revis
los locks y los procesos y se mueven y estan en Status: 'runnable'
- Lo he probado desde diversos clientes.

.y lo mas destacable que si ejecuto las 2 querys que forman la quer
principal por separado, en total no tardan mas de 10 minutos... L
unica diferencia pues, es el UNION por medio..

A alguien se le ocurre algo??

Gracias por adelantado

jrodriguez
jrodriguezr's Profile: http://www.msusenet.com/member.php?useridG8
View this thread: http://www.msusenet.com/t-187102148

Preguntas similare

Leer las respuestas

#1 Gabriel South
30/08/2005 - 19:04 | Informe spam
No usar el UNION!... :)

Cual es la diferencia si ejecutas cada una por separado y pones todo dentro
de un recordset???

"jrodriguezr" wrote in message
news:

Wenas a todos.

Tengo un pequeño gran problema, y a ver si me podeis ayudar: dispongo
de una query de cierta complejidad, pero que basicamente se basa de dos
querys unidas por una UNION.
Esta query lleva ejecutandose diariamente sin ningún problema (no
realiza operaciones de escritura, basicamente SELECT's y JOIN's).

El problema me lo ha comenzado a dar esta semana: el tiempo de
ejecución que consumia la query era aproximadamente de 10 minutos...
ahora me tarda mas de una hora (no me he esperado a que acabara).

Datos que os puedo dar:
- El servidor trabaja en esa query (durante toda la hora reviso
los locks y los procesos y se mueven y estan en Status: 'runnable'
- Lo he probado desde diversos clientes.

.y lo mas destacable que si ejecuto las 2 querys que forman la query
principal por separado, en total no tardan mas de 10 minutos... La
unica diferencia pues, es el UNION por medio..

A alguien se le ocurre algo??

Gracias por adelantado.


jrodriguezr

jrodriguezr's Profile: http://www.msusenet.com/member.php?useridG80
View this thread: http://www.msusenet.com/t-1871021482

Respuesta Responder a este mensaje
#2 Maxi
31/08/2005 - 00:06 | Informe spam
Hola, como estas de indices? y que hace esa query?


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"jrodriguezr" escribió en el mensaje
news:

Wenas a todos.

Tengo un pequeño gran problema, y a ver si me podeis ayudar: dispongo
de una query de cierta complejidad, pero que basicamente se basa de dos
querys unidas por una UNION.
Esta query lleva ejecutandose diariamente sin ningún problema (no
realiza operaciones de escritura, basicamente SELECT's y JOIN's).

El problema me lo ha comenzado a dar esta semana: el tiempo de
ejecución que consumia la query era aproximadamente de 10 minutos...
ahora me tarda mas de una hora (no me he esperado a que acabara).

Datos que os puedo dar:
- El servidor trabaja en esa query (durante toda la hora reviso
los locks y los procesos y se mueven y estan en Status: 'runnable'
- Lo he probado desde diversos clientes.

.y lo mas destacable que si ejecuto las 2 querys que forman la query
principal por separado, en total no tardan mas de 10 minutos... La
unica diferencia pues, es el UNION por medio..

A alguien se le ocurre algo??

Gracias por adelantado.


jrodriguezr

jrodriguezr's Profile: http://www.msusenet.com/member.php?useridG80
View this thread: http://www.msusenet.com/t-1871021482

Respuesta Responder a este mensaje
#3 jrodriguezr
31/08/2005 - 09:57 | Informe spam
Hola a todos,

Antes de nada, gracias por molestaros en contestar.

GABRIEL: Actualmente es como lo estoy haciendo, pero a mano. E
problema que tengo es que dicha query se lanza de manera planificad
desde una aplicación externa; la aplicación coge el fichero .sql, l
ejecuta contra una conexión determinada, y vuelca los resultados en u
fichero, para su posterior importación por otra aplicación.

Lo que tu me aconsejas, me obligaría a modificar el comportamiento d
dicha aplicación, y eso lo tengo complicado, aparte que ejecuta otro
ficheros .sql y lo realiza perfectamente.

Por que comentas lo de no usar el UNION? Existe otra manera pued
emular el mismo comportamiento del UNION desde Transact-SQL?

Gracias.

MAXI: El tema indices no se como está, pero igualmente...cuando ejecut
las dos querys por separado, me lo realiza correctamente: si fuera tem
de indices,también me vería afectado,no?
Como comentaba, la unica diferencia entre lanzar la query unida, y po
separado es el UNION.

Respecto a lo que realiza la query es basicamente recoger una serie d
campos (y formatearlos) de diversas tablas para formar los registro
deseados, en base a varias condiciones, todo eso agrupado , co
subquerys en el FROM,(y lamentablemente alguna en el WHERE)
JOIN's
Las dos querys que forman la Megaquery (vamos a llamarla así) realiza
lo mismo, con la diferencia de condiciones y que en una de ellas hay u
campo calculado por la misma.

Gracias.

Un saludo a los dos

jrodriguez
jrodriguezr's Profile: http://www.msusenet.com/member.php?useridG8
View this thread: http://www.msusenet.com/t-187102148
Respuesta Responder a este mensaje
#4 Maxi
31/08/2005 - 18:06 | Informe spam
Hola, estas usando UNION o UNION ALL?


Salu2
Maxi


"jrodriguezr" escribió en el mensaje
news:

Hola a todos,

Antes de nada, gracias por molestaros en contestar.

GABRIEL: Actualmente es como lo estoy haciendo, pero a mano. El
problema que tengo es que dicha query se lanza de manera planificada
desde una aplicación externa; la aplicación coge el fichero .sql, lo
ejecuta contra una conexión determinada, y vuelca los resultados en un
fichero, para su posterior importación por otra aplicación.

Lo que tu me aconsejas, me obligaría a modificar el comportamiento de
dicha aplicación, y eso lo tengo complicado, aparte que ejecuta otros
ficheros .sql y lo realiza perfectamente.

Por que comentas lo de no usar el UNION? Existe otra manera puedo
emular el mismo comportamiento del UNION desde Transact-SQL?

Gracias.

MAXI: El tema indices no se como está, pero igualmente...cuando ejecuto
las dos querys por separado, me lo realiza correctamente: si fuera tema
de indices,también me vería afectado,no?
Como comentaba, la unica diferencia entre lanzar la query unida, y por
separado es el UNION.

Respecto a lo que realiza la query es basicamente recoger una serie de
campos (y formatearlos) de diversas tablas para formar los registros
deseados, en base a varias condiciones, todo eso agrupado , con
subquerys en el FROM,(y lamentablemente alguna en el WHERE),
JOIN's
Las dos querys que forman la Megaquery (vamos a llamarla así) realizan
lo mismo, con la diferencia de condiciones y que en una de ellas hay un
campo calculado por la misma.

Gracias.

Un saludo a los dos.


jrodriguezr

jrodriguezr's Profile: http://www.msusenet.com/member.php?useridG80
View this thread: http://www.msusenet.com/t-1871021482

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida