Ayuda URGENTE !! .Optimizar consulta SELECT

02/09/2004 - 15:04 por Jesús | Informe spam
HOla a todos !!

Necesito ayuda por favor

Me gustaría que alguien me respondiera razonando la misma
a poder ser , la siguiente cuestión :
Que consulta de estas 2 se ejecuta con mayor rapidez ?

SELECT IdAlbaran FROM Albaranes WHERE IdAlbaran IN (SELECT
IdAlbaran FROM AlbaranesFacturados WHERE Cliente00)

o esta otra

SELECT Albaranes.IdAlbaran FROM Albaranes INNER JOIN
AlbaranesFacturados ON Albaranes.IdAlbaran =
AlbaranesFacturados.IdAlbaran
WHERE AlbaranesFacturados.Cliente 00

Necesito saberlo ya que en función de que sea una u
otra , me toca en mi empresa cambiar unas 100 select xDDD
Muchas gracias !!

Preguntas similare

Leer las respuestas

#1 Cesar Toledo
02/09/2004 - 15:10 | Informe spam
Esa pregunta te la puedes responder tu solo,
si activas el plan de ejecucion en el analizador de consultas

y comparas los resultados.


"Jesús" escribió en el mensaje
news:4c1f01c490ed$721d7ac0$
HOla a todos !!

Necesito ayuda por favor

Me gustaría que alguien me respondiera razonando la misma
a poder ser , la siguiente cuestión :
Que consulta de estas 2 se ejecuta con mayor rapidez ?

SELECT IdAlbaran FROM Albaranes WHERE IdAlbaran IN (SELECT
IdAlbaran FROM AlbaranesFacturados WHERE Cliente00)

o esta otra

SELECT Albaranes.IdAlbaran FROM Albaranes INNER JOIN
AlbaranesFacturados ON Albaranes.IdAlbaran AlbaranesFacturados.IdAlbaran
WHERE AlbaranesFacturados.Cliente 00

Necesito saberlo ya que en función de que sea una u
otra , me toca en mi empresa cambiar unas 100 select xDDD
Muchas gracias !!
#2 Maxi
02/09/2004 - 15:15 | Informe spam
Hola, depende, en teoria la segunda deberia ser mas eficiente, pero solo en
teoria, particularmente yo uso la segunda por una cuestion de formacion,
pero no deberias tener muchas diferencias entre una y otra

Suerte


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Jesús" escribió en el mensaje
news:4c1f01c490ed$721d7ac0$
HOla a todos !!

Necesito ayuda por favor

Me gustaría que alguien me respondiera razonando la misma
a poder ser , la siguiente cuestión :
Que consulta de estas 2 se ejecuta con mayor rapidez ?

SELECT IdAlbaran FROM Albaranes WHERE IdAlbaran IN (SELECT
IdAlbaran FROM AlbaranesFacturados WHERE Cliente00)

o esta otra

SELECT Albaranes.IdAlbaran FROM Albaranes INNER JOIN
AlbaranesFacturados ON Albaranes.IdAlbaran AlbaranesFacturados.IdAlbaran
WHERE AlbaranesFacturados.Cliente 00

Necesito saberlo ya que en función de que sea una u
otra , me toca en mi empresa cambiar unas 100 select xDDD
Muchas gracias !!




Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.748 / Virus Database: 500 - Release Date: 01/09/2004
#3 Anonimo
02/09/2004 - 16:25 | Informe spam
Mostrar la cita
eficiente, pero solo en
Mostrar la cita
cuestion de formacion,
Mostrar la cita
Coincido contigo en que es mejor por formación la
2a ,pero estoy hablando de eficiencia real , para tablas
con 2 o 3 millones de registros.
Gracias de tods formas Maxi .
Mostrar la cita
-
Mostrar la cita
-
Mostrar la cita
el mensaje
Mostrar la cita
01/09/2004
Mostrar la cita
#4 Maxi
02/09/2004 - 18:13 | Informe spam
Te repito, no deberia haber diferencias considerables, pero lo ideal es usar
la opcion 2


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



escribió en el mensaje
news:0b6001c490f8$a1820b40$

Mostrar la cita
eficiente, pero solo en
Mostrar la cita
cuestion de formacion,
Mostrar la cita
Coincido contigo en que es mejor por formación la
2a ,pero estoy hablando de eficiencia real , para tablas
con 2 o 3 millones de registros.
Gracias de tods formas Maxi .
Mostrar la cita
-
Mostrar la cita
-
Mostrar la cita
el mensaje
Mostrar la cita
01/09/2004
Mostrar la cita
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.748 / Virus Database: 500 - Release Date: 01/09/2004
#5 Lázaro
02/09/2004 - 19:53 | Informe spam
Te digo la respuesta:

El optimizador analiza primero la subselect interna y como es conocida, es
decir la ejecuta de una sola vez, ya que no depende de la externa, entonces
modifica la sentencia a un join como el que has escrito.

Solamente son peores aquellos subselect que depende de un dato exterior.
Sobre la consulta del join solamente sería peor si el sistema no encontrara
indices para hacer el join entre ambas tablas

De todas maneras como bien te han contestado, por estandar la del join, y de
todas maneras mirate el showplan ya verás la información que te da.

Salu2


"Jesús" wrote in message
news:4c1f01c490ed$721d7ac0$
HOla a todos !!

Necesito ayuda por favor

Me gustaría que alguien me respondiera razonando la misma
a poder ser , la siguiente cuestión :
Que consulta de estas 2 se ejecuta con mayor rapidez ?

SELECT IdAlbaran FROM Albaranes WHERE IdAlbaran IN (SELECT
IdAlbaran FROM AlbaranesFacturados WHERE Cliente00)

o esta otra

SELECT Albaranes.IdAlbaran FROM Albaranes INNER JOIN
AlbaranesFacturados ON Albaranes.IdAlbaran AlbaranesFacturados.IdAlbaran
WHERE AlbaranesFacturados.Cliente 00

Necesito saberlo ya que en función de que sea una u
otra , me toca en mi empresa cambiar unas 100 select xDDD
Muchas gracias !!
Ads by Google
Search Busqueda sugerida