Page 1 of 1

Ayuda en Consulta SQL

Posted: Mon Jan 16, 2012 1:42 pm
by evallejo
Fivewineros:
Una ayuda:
Tengo una tabla de movimientos (actualmente unos 5300 reg.), otra tabla donde estan las pendientes de pago (actualmente unos 23000 reg.).
La tabla de pendientes se relaciona con la de movimientos por el campo nota_original.
Al realizar el un pago, tengo que obtener las notas pendientes. En la consulta necesito mostrar datos de la tabla movimientos, el select lo tengo así:
"select pendientes_de_pago.*, movimientos.mv_date, movimientos.mv_vencimiento from pendientes_de_pago
left join movimientos on pendientes_de_pago.nota_original = movimientos.numero_de_nota order by pendientes_de_pago.numero_de_pendiente"

El problema es que la consulta dura una eternidad ... bueno mas de 15 minutos, es mucho para una consulta.
¿Cómo podré mejorarla? ¿alguna pista o idea?
De antemano muchas gracias a todos ...

Eduardo

Re: Ayuda en Consulta SQL

Posted: Mon Jan 16, 2012 1:45 pm
by evallejo
Pedón se me olvidó decir que estoy usando TDolphin y MySql 5. FWH 9.04
Gracias.

Eduardo.

Re: Ayuda en Consulta SQL

Posted: Mon Jan 16, 2012 1:53 pm
by Rick Lipkin
Eduardo

A couple of questions ..

1) Are you using relational constraints on the two keys you are joining ?
2) Do you have unique row id's from both of your tables regardless of any relationships ?

For me .. I do not use any relational constraints as indexes .. some people may argue that point, but I do know you need a NOT NULL unique field row id for each table and that row id I mark as my primary key.

Rick Lipkin

Re: Ayuda en Consulta SQL

Posted: Mon Jan 16, 2012 1:55 pm
by Adolfo
Eduardo..

Publica la estructura de tus tablas y identifica _ clave para ayudarte.

Desde Chile
Adolfo

Re: Ayuda en Consulta SQL

Posted: Mon Jan 16, 2012 2:05 pm
by Daniel Garcia-Gil
Hola

has creado indices para nota_original y numero_de_nota??

Re: Ayuda en Consulta SQL

Posted: Mon Jan 16, 2012 2:23 pm
by evallejo
Gracias por responder,

nota_original no es un índice. (Creo que por ahí va la cosa).
numero_pendiente si es índice.

Voy a probar poniendo nota_original como índice.

Gracias una vez mas.

Re: Ayuda en Consulta SQL

Posted: Mon Jan 16, 2012 2:37 pm
by evallejo
Creo que algo estoy haciendo mal:

Tabla movimientos:
numero_de_nota (clave primaria)
fecha_de_nota
.
.

Tabla de Pendientes:
numero_de_pendiente (clave primaria)
fecha_de_pendiente
nota_original
.
.
-
Lo que estoy relacionaldo es nota_original (de pendientes) con numero_de_nota (de mnovientos)

a ver si me dan un tip
Gracias
Eduardo

Re: Ayuda en Consulta SQL

Posted: Mon Jan 16, 2012 2:59 pm
by pablovidal
En tabla pendientes create un indice en nota_original.. y problema resuelto :)

Re: Ayuda en Consulta SQL (Solucionado)

Posted: Mon Jan 16, 2012 4:37 pm
by evallejo
Gracias a todos,

Creando el indice en nota_original.

Salu2
Eduardo