optimizar consultas mysql por internet con conexion odbc

497 views
Skip to first unread message

Saul Piña Hernandez

unread,
May 30, 2013, 12:09:45 PM5/30/13
to publice...@googlegroups.com
Saludos!

Hace poco desarrollé un sistema para captura de datos tanto localmente (red de area local e inalambrico) como para internet. 

Se instaló un servidor (windows 7) con ip fija y el motor de base de datos es mysql, las conexiones son de aproximadamente de 8 a 15 pcs conectadas simultaneamente. 

Ahora, es la fase de consultar lo que se ha capturado y realizar conteo de estado de captura y avances...por lo tanto debo crear varias consultas, y aquí viene mi duda:

Las consultas que realizo son de esta manera:

lcStringConn="Driver={MySQL ODBC 5.1 Driver};Port3306"+;
";Server="+lcServer+;
";Database="+lcDatabase+;
";Uid="+lcUser+;
";Pwd="+lcPassWord
SQLSETPROP(0,"DispLogin",3)
lHandle=SQLSTRINGCONNECT(lcStringConn) &&& ERROR &&&
    IF lHandle > 0
    sqlexec(lhandle,"use tdatos")
        SQLEXEC(lhandle,"select *from tdatos ORDER BY folio ASC","c1")
        SELECT c1
            *********Modulos
       
        SELECT modulo FROM c1 WHERE modulo=1 INTO CURSOR cConsulta nofilter
            IF RECCOUNT()>0
            SELECT cConsulta
            COUNT TO thisform.a1.Value
            ENDIF

Pero se tarda de 10 a 20 segundos en mostrar los resultados de la consulta......

es normal, o algo me anda faltando?

Gracias!

Luis Mata

unread,
May 30, 2013, 12:15:56 PM5/30/13
to publice...@googlegroups.com
si pones de cuantos registros estamos hablando.. seria mas fácil de discernir.

Saul Piña Hernandez

unread,
May 30, 2013, 12:41:03 PM5/30/13
to publice...@googlegroups.com, Luis Mata
Apenas de 2500 registros, y la tabla tiene 40 campos, 2 de ellos de mas de 200 caracteres..

Además la consulta se repite hasta en 5 ocasiones..  si gustas te envío el ejecutable, solo requiere las librerias y el conector odbc de 5.1 para mysql. y puedas probarlo.


gracias!

Luis Mata

unread,
May 30, 2013, 12:43:12 PM5/30/13
to publice...@googlegroups.com
Y los índices están bien definidos supongo, es la misma velocidad del select?

Saul Piña Hernandez

unread,
May 30, 2013, 12:56:18 PM5/30/13
to publice...@googlegroups.com, Luis Mata
Saludos!

Oye, y con el ejemplo que expuse, voy desarrollando bien?  o se podría mejorar?

mpulla

unread,
May 30, 2013, 12:57:11 PM5/30/13
to publice...@googlegroups.com
Hola Sauld.

A mi parecer mandarte este Sql te esta demorando ya sean pocos registros

SQLEXEC(lhandle,"select *from tdatos ORDER BY folio ASC","c1")

Seria mejor directamente
SQLEXEC(lhandle,"select *from tdatos ORDER BY folio ASC","cConsulta")

Saludos.
Mauricio

mpulla

unread,
May 30, 2013, 1:01:52 PM5/30/13
to publice...@googlegroups.com
Sorry

Me jugo una mala pasada el Copy Paste


SQLEXEC(lhandle,"select *from tdatos ORDER BY folio ASC","c1")

SQLEXEC(lhandle,"SELECT modulo FROM tdatos WHERE modulo=1 ORDER BY folio ASC","cConsulta")

Por otro lado no es buena constumbre hacer un Select * From ya que por lo general te traes data que no se necesita.

Saludos.
Mauricio

Luis Mata

unread,
May 30, 2013, 1:02:54 PM5/30/13
to publice...@googlegroups.com
Saul
 
No borres el historial, cuando yo lo leo los elimino, y cuando haces nuevamente la pregunta tengo que buscarlo en los eliminados para volver a chequearlos.
 
 
Sent: Thursday, May 30, 2013 11:56 AM
Subject: Re: [vfp] optimizar consultas mysql por internet con conexion odbc
 

Luis Mata

unread,
May 30, 2013, 1:04:53 PM5/30/13
to publice...@googlegroups.com
Desterra el *, invoca solo campos, revisa tu Red interna, ayer mi Lan se saturo totalmente porque todas las PC estaban actualizando y la velocidad bajo significativamente.

Saul Piña Hernandez

unread,
May 30, 2013, 1:22:07 PM5/30/13
to publice...@googlegroups.com, Luis Mata
Ah bueno, perdon, es que pensé que no se entiende por tener tantas preguntas en la misma publicacion.  bueno voy a seguir tu consejo haber que tal.

les cuento qsi cambió en algo...gracias

Alfonso Ramirez Diaz

unread,
May 30, 2013, 5:54:25 PM5/30/13
to publice...@googlegroups.com
Estimado Saul

Te recomiendo que abras la conexión una sola vez y la dejes abierta hasta que cierres el programa, yo trabajo de esa forma y es super rápido porque no hay que estar conectado y desconectando a cada rato.

Otro punto importante es tener bien definida la clave primaria o los indices.
Reply all
Reply to author
Forward
0 new messages