Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2008
sandiamo sandiamo is offline
Miembro
 
Registrado: mar 2007
Posts: 22
Poder: 0
sandiamo Va por buen camino
Ok oido cocina he leido el Tema calidad en las preguntas y estoy de acuerdo.
Siento haber sido poco claro en la pregunta.

La tabla tiendasip no es importante a mi entender en esta consulta pues solo se utiliza para recopilar un par de campos, y aun eliminandola de la consulta el retardo se mantiene.
El problema a mi entender viene porque las tablas auxh y stockarticulos no estan relacionadas directamente y se requiere de la tabla articulos como tabla intermedia. Además, es necesario que aparezcan todos los registros de la tabla auxh, aunque no aparezcan en la tabla stockarticulos (de ahí los dos left join utilizados).
No utilizo indices en las tablas por cierto.
Vamos que esta consulta seria equivalente:

Código SQL [-]
Select CURRENT_DATE AS FECHA,h.codor,
h.descripcion,h.codh,a.codigo,s.stock
from auxh h
left join articulos a
on (a.codoperador=h.codor)
left join stockarticulos s
on (s.codarticulo=a.codigo)and(s.codtienda=:xcodtienda)
order by h.codorden

Las Tablas son:
auxh
CODIGO INTEGER,
CODORDEN INTEGER,
CODOR VARCHAR(50),
DESCRIPCION VARCHAR(100),
CODH VARCHAR(25)
articulos
CODIGO INTEGER,
CODOPERADOR VARCHAR(50)
stockarticulos
CODIGO INTEGER,
CODARTICULO INTEGER,
CODTIENDA INTEGER,
STOCK DOUBLE PRECISION
Responder Con Cita
  #2  
Antiguo 25-01-2008
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 22
Ivanzinho Va por buen camino
Cita:
Empezado por sandiamo
No utilizo indices en las tablas por cierto.
Pues ya los estás creando, crea indices con los campos por los cuales se enlazan las tablas y por aquellos que quieras realizar una ordenación.

Una vez hecho esto si la cosa sigue lenta tendremos que esperar que jachguate no se haya muerto el otro día por la tarde para que nos ilumine con su sabiduria .

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #3  
Antiguo 26-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Cita:
Empezado por Ivanzinho Ver Mensaje
Pues ya los estás creando, crea indices con los campos por los cuales se enlazan las tablas y por aquellos que quieras realizar una ordenación.
No hace falta crear un índice por aquellos campos que son parte de una llave foránea, pues para estos el motor crea automáticamente uno al declarar la regla de integridad.

Cita:
Empezado por Ivanzinho Ver Mensaje
tendremos que esperar que jachguate no se haya muerto el otro día por la tarde para que nos ilumine con su sabiduria .
¡Te tengo malas noticias!.... resulta que acá en el cielo también hay conexión a Internet... parece que no se librarán de mi en el club...

Con respecto del tema del hilo, si solo se pretende que aparezcan *todos* los registros de la tabla auxh, no entiendo por qué se hacen dos left join y no solo uno.

Tampoco veo por que razón se coloca la condición (s.codtienda=:xcodtienda) como parte del join, pues a mi entender esta debiera ir en el where. Aún cuando el resultado pueda ser el mismo, la semántica es distinta.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 26-01-2008
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 22
Ivanzinho Va por buen camino
Cita:
Empezado por jachguate
No hace falta crear un índice por aquellos campos que son parte de una llave foránea, pues para estos el motor crea automáticamente uno al declarar la regla de integridad.
Di por hecho que no tenía claves foráneas , para las claves primarias tampoco haría falta crearlos.

Sandiano, yo te recomendaría que mirases algo de procesamiento y optimización de consultas, para poder optimizar el diseño, y por tanto el rendimiento, de la base de datos, así como calcular el coste de dichas consultas.



Cita:
Empezado por jachguate
¡Te tengo malas noticias!.... resulta que acá en el cielo también hay conexión a Internet... parece que no se librarán de mi en el club...
No vivas engañado, eso es que estás en el infierno

Un saúdo
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Left Join peripla SQL 1 28-06-2007 18:52:46
usando LEFT JOIN o RIGHT JOIN alcides SQL 8 03-05-2007 17:35:46
left join e inner join duda Patricio SQL 0 26-04-2007 22:06:43
LEFT OUTER JOIN e INNER JOIN Juntos alcides SQL 3 08-07-2005 18:06:27
LEFT JOIN extraños? Gydba Oracle 5 07-05-2004 22:11:32


La franja horaria es GMT +2. Ahora son las 08:30:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi