Ver Mensaje Individual
  #4  
Antiguo 22-03-2004
Walter Walter is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 13
Reputación: 0
Walter Va por buen camino
Gracias a Cadetill y Mick por responderme.
Probe:
select * from clientes.db c
inner join bene.db x on x.idcliente=c.idcliente
Tiempo +- 20 segundos

select * from bene.db b, clientes.db c
where b.idcliente=c.idcliente
Tiempo +- 20 segundos.

Cuando digo como funciona SQL quiero decir como son evaluadas las sentencias (si empieza por la tabla de la izq. hacia la derecha ,de la der. A la izq, si evalúa primero las tablas que tienen cláusulas “where”, o por donde empieza cuando hay mas de dos tablas. Con respecto al tiempo no se si 5 segundos es mucho y 20 son una eternidad, también hay que tener en cuenta que las tablas no las tengo en mi disco rígido, sino que están en el disco del servidor con la red de por medio. En ambas tablas tengo un índice primario en el campo idcliente.


Cadetill mira estas dos sentencias:

A)
select * from bene.db b
left outer join bene.db x on x.idcliente=b.idcliente
left outer join clientes.db c on c.idcliente =b.idcliente

Tarda +- “5” segundos.

B)
select * from bene.db b
left outer join clientes.db c on c.idcliente =b.idcliente

Tarda +- “20” segundos.

Cuando repito la tabla bene por 2º vez en el join de la consulta “A”, la consulta tarda 15 segundos menos, es lo que me llama poderosamente la atención, cuando lo lógico seria usar la sentencia “B”.
Responder Con Cita