Diferentes formas de un select

18/12/2004 - 05:49 por yoli garcia | Informe spam
Hola

Cual seria la diferencia entre estos dos tipos de select, cual es mas rapido
o eficiente ?
*asumiento que hacen lo mismo. Si no favor aclararme

a) select a.doc, (select count(*) from docs b where b.doc a.doc and b.stat=1 ) as veces1 from docs a

b) select a.doc, count(b.doc) as veces1
from docs a left outer join docs b on a.doc=b.doc
where b.stat=1 group by 1

Preguntas similare

Leer las respuestas

#1 Tinoco
17/12/2004 - 18:05 | Informe spam
Hola Yoly,

Deberia ser mas eficiente el Select (B), pero la eficiencia depende mucho de
los datos en la tabla, su uso, y los indices configurados en la tabla, un
indice por el campo DOC ayudaria mucho. Creo que el B es mejor porque tiene
una sola consulta y el where ayuda a simplificar el conjunto de datos.

Espero haber ayudado.

Hermilson Tinoco.
MCDBA, MCSD
Colombia


"yoli garcia" wrote:

Hola

Cual seria la diferencia entre estos dos tipos de select, cual es mas rapido
o eficiente ?
*asumiento que hacen lo mismo. Si no favor aclararme

a) select a.doc, (select count(*) from docs b where b.doc > a.doc and b.stat=1 ) as veces1 from docs a

b) select a.doc, count(b.doc) as veces1
from docs a left outer join docs b on a.doc=b.doc
where b.stat=1 group by 1








Respuesta Responder a este mensaje
#2 Salvador Ramos
17/12/2004 - 18:29 | Informe spam
Hola:

Te voy a ofrecer una solución genérica que ayuda mucho en este tipo de
casos.
Ve al query analyzer, marca la casilla para que te muestre el plan de
ejecución, pon allí las dos SELECTs y ejecuta.
Si te vas a la pestaña del plan de ejecución, verás los planes de ambas
instrucciones, y en la parte superior de cada uno de ellos te indicará el
porcentaje que han consumido del 100% del tiempo de ejecución, eso te
ayudará a ver las diferencias gráficamente y ver también cual es más rápido
comparado con el otro.

Así lo ves siempre sobre el caso concreto y datos reales sobre los que vas a
aplicarlo.

Un saludo
Salvador Ramos
Murcia - España
[Microsoft MVP SQL Server]
www.helpdna.net
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"yoli garcia" escribió en el mensaje
news:%
Hola

Cual seria la diferencia entre estos dos tipos de select, cual es mas


rapido
o eficiente ?
*asumiento que hacen lo mismo. Si no favor aclararme

a) select a.doc, (select count(*) from docs b where b.doc > a.doc and b.stat=1 ) as veces1 from docs a

b) select a.doc, count(b.doc) as veces1
from docs a left outer join docs b on a.doc=b.doc
where b.stat=1 group by 1







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