FoxPro/Visual FoxPro - Mejorar Consulta en MysQL

 
Vista:
sin imagen de perfil

Mejorar Consulta en MysQL

Publicado por victor perez (137 intervenciones) el 15/02/2013 19:50:52
Estimados Amigos,

Realizo una Consulta con la siguiente informacion;

_BUSCAME=ALLTRIM(THIS.Value)
_BUSCAME2=ALLTRIM(THISFORM.PGFFICHA.PAGE4.TXTBAPE.Value)
_KEY="NOMBRES LIKE '%&_BUSCAME%' AND APELLIDOS LIKE '%&_BUSCAME2%' "


Luego ejecuto un Filtro que tiene las sentencias;

Thisform.conecta
SQLEXEC(lnhandle,"Select * from patient where &_key","_Base")
SQLDISCONNECT(lnhandle)

Cuando es un solo campo el buscado (codigo, nombre, apellidos, cedula, etc)..es rapidisimo...Pero cuando son dos campos toma hasta 4 seg en encontrar los resultados de una base de datos de 35,000 expedientes.

Tengo la base de datos indexada para codigo, apellidos, nombres, expediente y para (apellidos + nombres).

Al introducir la busqueda para el nombre y apellido, lo primero que se introduce es el Apellido y luego el nombre (parcial o completo).

Alguna sugerencia para aumentar la velocidad de busqueda...


Gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Mauricio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mejorar Consulta en MysQL

Publicado por Mauricio (1541 intervenciones) el 15/02/2013 22:45:56
Creo que deberias crear un indice compuesto de ALLT(nombre) + ALLT(apellido), seria un poco mas rapido de buscar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Mejorar Consulta en MysQL

Publicado por victor perez (137 intervenciones) el 16/02/2013 02:16:40
Ya esta indexado....(apellidos +nombres)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mejorar Consulta en MysQL

Publicado por es_binario (757 intervenciones) el 16/02/2013 05:02:04
dentro de las guitools que te bajas para mysql, tambien esta la - Mysql query browser -, realiza la consulta ahi... y el tiempo que tome realizar esa consulta es lo que deberia tomarle al sistema foxpro realizar la misma consulta...

ahora a foxpro le toma algo de tiempo hacer la conexion, por eso te comentaba que lo mejor es dejarlo conectado y desconectar cuando termines tu aplicacion... y crear en mysql los diferentes usuarios aunque hacer esta labor implica estar compilando constantemente hasta terminar la aplicacion... es decir es mucho mas rapido...

por ahi voy a subir un video para demostrar que es mejor estar siempre conectado y tener un try catch, que reconecte en caso de que haya algun tipo de perdida.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar