Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-06-2007
Rako Rako is offline
Miembro
 
Registrado: mar 2007
Posts: 39
Poder: 0
Rako Va por buen camino
Lentitud consultas mysql con delphi

Hola buenas, pues resulta que en access gracias a una propiedad de los adoquerys las consultas sobre muchas entradas se hacian rapido, sin embargo en mysql esto no ocurre, hemos probado a colocar indices para arreglar el problema de la velocidad y nada...segun el que habia hecho esto antes dice que el problema es e delphi y que no hay nada que hacer, que por mucho que mejoremos la velocidad de consulta en mysql a 0.00001 segundos si delphi tarda 10 segundos nada que hacer...
Pero me extraña que no se pueda hacer que busque rapido en 40 000 entradas...es incompatible mysql con delphi para grandes busqueedas?

Otra cosa, en la parte de modificar los datos de un paciente, salen los campos como DBEdits, se conectan directamente y ahi tambien tarda, es como si se recorrera toda la lista para buscar los datos de ese paciente en particular...pero....si tiene indices como no encuentra directamente la enrrada correspondiente? porque tarda tambien tanto?

Muchas gracias
Responder Con Cita
  #2  
Antiguo 26-06-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Podrías poner algo de código de la búsqeda que estás haciendo?
¿SQL? ¿Accedes a la tabla?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 26-06-2007
Rako Rako is offline
Miembro
 
Registrado: mar 2007
Posts: 39
Poder: 0
Rako Va por buen camino
si ok... pues el problema es en un adotable sobre la tabla, y entonces al activar esa tabla, lee los 40 000 registros y se tira la vida....
Responder Con Cita
  #4  
Antiguo 26-06-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Rako, pueden haber miles de factores que hacen que leer esa cómoda cantidad sea lenta.
Como te dijo Neftali, ¿porqué no nos dás mayores detalles?. Por favor da a conocer el código de la consulta.

Por lo último que expones, me estoy imaginando que estan leyendo los datos desde la tabla y no desde un Query.
No es recomendable emplear xxxTable si se dispone de muchos registros. Un ADoTable lee y trae a memoria TODOS los datos. ¿Realmente se necesitan?

Emplea un Query y asegúrate de limitar la cantidad con WHERE, por ejemplo.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 26-06-2007
Rako Rako is offline
Miembro
 
Registrado: mar 2007
Posts: 39
Poder: 0
Rako Va por buen camino
Si perdon, como dije justo arriba uso una tabla, probare con el query pero es que es q es para insertar nuevos pacientes o modificar sus datos,,,, ok ya miro con el query gracias
Responder Con Cita
  #6  
Antiguo 26-06-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
No se si el query del ado lo trae pero la propiedad requestlive permite que se comporte como una tabla a la hora de modificar el registro
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #7  
Antiguo 26-06-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Los componentes ADO poseen la propiedad CursorLocation; Revisa el valor, no sea que te estés trayendo a local demasiados registros.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 28-06-2007
Rako Rako is offline
Miembro
 
Registrado: mar 2007
Posts: 39
Poder: 0
Rako Va por buen camino
Hola de nuevo, muchas gracias en algunos sitios como en el añadir o modificar los datos del paciente si pude cambiar el table que habia por un query y en el where limitarlo y q sea inmediato....

Pero a la hora de buscar un paciente concreto o al arrancar el programa, que se deben cargar todos los pacientes.... en access con la propiedad de cursorlocation se podia hacer q fuera inmediata la busqyueda...pero en my sql en q debe estar esa propiedad? en server o client? parace q en server va algo mas rapido pero no mucho mas,,tarda un monton en leer los 40 000 pacientes que solo tienen nombre y apellidos ( es una bbdd de pruebas ), la informacion la coge desde un adoquery (select * from tbl_paciente) , llame al antiguo programador y me dijo que hay que cargar todos los pacientes al arrancar el programa irremediablamente y la culpa de la lentitud es delphi me dijo ¬¬

Pero es q me parece raro q para leer tan pocos registros no haya una solucion... gracias de antemano me fuisteis de mucha ayuda antes
Responder Con Cita
  #9  
Antiguo 28-06-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Rako
...llame al antiguo programador y me dijo que hay que cargar todos los pacientes al arrancar el programa irremediablamente y la culpa de la lentitud es delphi me dijo
Creo que la culpa es suya, no de Delphi.
¿Cual es la razón para leer TODOS los pacientes al cargar la aplicación?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 28-06-2007
Rako Rako is offline
Miembro
 
Registrado: mar 2007
Posts: 39
Poder: 0
Rako Va por buen camino
pues no se... supongo que para tenerlos ya ahi cargaditos e ir pudiendo pasar de uno a otro jaja
ya habia pensado quitar eso e irlos cargando segun los busquen por nombre o algo asi,,, supongo que acabare haciendo eso
Responder Con Cita
Respuesta



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
¿Qué número de consultas a MySQL podrían considerarse excesivas? dec MySQL 12 04-04-2006 22:22:45
Lentitud de Mysql cuando se pierde la conexion con internet Carlos Arevalo MySQL 0 05-07-2005 00:50:22
consultas SQL entre delphi y MySQL docarrillo SQL 1 03-07-2003 02:31:22
Consultas SQL en Delphi DaRkBoY Oracle 4 18-06-2003 15:26:43


La franja horaria es GMT +2. Ahora son las 10:19:51.


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