FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
optimizar consulta
buenas gente tengo una consulta para mysql la cual me demora mucho tiempo creo por la cantidad de registros que manejo no deberia tardar tanto pienso tal vez puedan corregirme. la consuta es la siguiente
demora unos 9 segundos pero solo tengo 340 creditos. lo que tiene que devolver mi consulta es los creditos que tienen mas de 3 cuotas adeudadas cualquier ayuda se agradece saludos.... |
#2
|
||||
|
||||
Es muy difícil ayudarte si no tenemos la estructura de las tablas. Para empezar, como mínimo, deberías quitar ese asterisco del "select *" y sustituirlo por los campos que realmente necesites. También puedes usar programas que te analizan el tiempo que tarda en hacer cada cosa, no conozco ninguno en mysql, pero seguro que los hay.
También puedes ir probando "trozo a trozo" para intentar encontrar al culpable, por ejemplo, primero pruebas sin el group by, luego pruebas sin el having, luego pruebas sólo con el select anidado, etc. y así también puede que encuentres al culpable. |
#3
|
|||
|
|||
Hola,
El select anidado te agrupa toda la tabla cada vez que se llama, por cada registro en creditos. Creo que para optimizarlo lo mejor seria crear una tabla temporal desde cuotascredito, con el filtro de idestadocuota y de aquellos con count >= 3. Luego llamar a otro select comparando si idcreditos de creditos esta en esta tabla temporal, y finalmente haciendo drop a esta tabla temporal. Así tansolo harás la agrupacion y el filtro por idestadocuota una única vez, en vez de las 340 que estas haciendo ahora. Saludos. |
#4
|
||||
|
||||
Aunque no concosco muy bien tu estructura de tus tablas puedo decirte que talves esta parte
es la que esta haciendo tardar mucho. Haber prueba asi: Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#5
|
||||
|
||||
También puedes sustituir el primer IN por un EXISTS, que funciona mucho más rápido:
__________________
No hope, no dreams, no love, my only escape is Underground |
#6
|
|||
|
|||
Solucionado
gracias a todos por responder muchachos.
Axel_Tech tu codigo me trae lo que nesecito instantaneamente sin nada de demora muchas gracias. rgstuamigo tu consulta me trae todos los creditos pero como dije quedo solucionado con el codigo de axel. gracias gente saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
optimizar codigo | acrophet | Varios | 5 | 16-01-2011 23:28:39 |
Optimizar con Case XXX of | TIKIMORE | Varios | 9 | 10-07-2010 17:21:20 |
Optimizar Consulta - algoritmo | jmartinez | MySQL | 2 | 28-08-2007 17:06:37 |
Optimizar Consulta en Firebird | AGAG4 | Firebird e Interbase | 14 | 10-01-2006 02:11:30 |
Optimizar Consulta | dunia_lv | MS SQL Server | 2 | 21-04-2005 09:43:51 |
|