FoxPro/Visual FoxPro - Consuta Red Lenta VFP

   
Vista:

Consuta Red Lenta VFP

Publicado por Nelida Ruiz Zubiaurre (2 intervenciones) el 21/09/2010 03:36:04
Buenas noches, mi consulta tiene que ver con un problema que se presenta en un sistema en red (3 estaciones), desarrollado en visual fox pro 6, file server.
El sistema es rapido en la estacion que simula ser el servidor, pero de manera aleatoria se pone lenta o muy lenta en los "clientes", trabajo con cursores, direcciono los temporales en directorios de cada pc.
Se ha revisado la red, y no tengo problemas con virus.
¿Que me sugieren para solucionar el problemas?
gracias por las respuestas
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

RE:Consuta Red Lenta VFP

Publicado por xx (378 intervenciones) el 21/09/2010 04:33:00
Bueno primero que nada debes saber que obviamente si tu ejecutas la aplicacion en el terminal que tiene alojado localmente (funge de servidor) los datos este se ejecutara mucho mas rapido que los demas y probablemente dara prioridad a la aplicacion en curso que a los procesos que acceden a sus disco desde otras terminales o mejor dicho a tra vez de la red y la solucion esta un poco compilicado, depende de la estructura cantidad de registros, si trabajas con buffer, con las DBF's el que diseña el programa no se puede pegar el luego de no normalizar eficientemente la base de datos.

Es mentira ese cuento que no relatan en la mayoria de las casas de estudio de que con las computadoras de hoy en dia tienen poca influencia la cantidad de campos y el tamaño de los mismos!!.

Deberias brindar mayores datos para una respuesta de mejor calidad
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

RE:Consuta Red Lenta VFP

Publicado por Nelida (2 intervenciones) el 21/09/2010 06:03:24
Hola, gracias por tu respuesta:
El programa esta en Visual Fox Pro 6, es un sistema de laboratorio clínico en red (3 maquinas, file server). Lo complejo de este sistema es el programa que permite el registro de las ordenes o petitorios, pues ademas de ingresar, permite el registro de los examenes, que se manejan a traves de varios formularios (hemogramas, urocultivo, etc). Ademas, a través del programa se pueden hacer varias consultas, grabar tablas, hacer la impresión. El archivo principal tiene una cabecera y tengo otro de detalle. El detalle lo muestro en una grid. El detalle se adiciona, modifica o elimina.
Comprendo que el servidor sea rapido, sin embargo de manera "aleatoria" el programa en las estaciones se ejecuta bien y en otras ocasiones se hace tan lento que no se puede trabajar. El sistema maneja unos 30,000 registros, uso cursores, Son solo 3 pcs conectadas.
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

RE:Consuta Red Lenta VFP

Publicado por Juanma Cruz (508 intervenciones) el 21/09/2010 10:25:49
* Tendrías que revisar cómo esta estructurada tu pequeña red.

* Cambia a switches en lugar de routers, administran mejor el tráfico de datos.

* Revisa que no haya otros programas que hagan uso del ancho de banda de la red de manera abusiva o innecesaria.

* Optimiza tus consultas, que sean selectivas: no tienes porqué intentar mostrar TODOS los clientes en pantalla al mismo tiempo, por ejemplo, eso sólo satura tanto al servidor de datos como a la red.

* Usa tantos índices como sean necesarios para optimizar el tiempo de respuesta y localización de datos.

* Evita el viejo esquema "Cargo primero TODA la información y luego uso filtros" (Sí, hay gente que aún programa así)

Sin más información, es lo primero y más generico que se me ocurre aconsejarte.

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

RE:Consuta Red Lenta VFP

Publicado por es_binario (757 intervenciones) el 21/09/2010 10:40:03
Un consejo mas

Para saber si es la red, has la siguiente prueba, usa un solo equipo en una estacion es decir un sola maquina y has pruebas de respuesta en velocidad y toma el dato.

luego ve a otra estacion y has lo mismo pero solo esa segunda maquina.

Bien si ambas consultas son igualmente rapidas entonces la red no tiene ningun problema que de hecho es lo mas razonable.

pero si la segunda maquina es mas lenta que la primera pero de manera significativa es decir una lentitud notable, quiere decir que los temporales que genera foxpro cada que haces una consulta los esta reusando para el que los pida sin importar quien sea y eso causaria una lentitud.

creo que el problema es el de siempre, que el program nunca fue pensado para red y no gestiona el trafico.

imagina que cada consulta que haces al servidor es un hilo y este hilo no sabe si otro hilo tambien esta usando una misma tabla, bueno como en realidad no se usan estados en los que foxpro servidor no sabe si tu ya no ocupas esa tabla ese hilo se queda tendido( el hilo es una conexion y consulta al mismo tiempo), cuando tu haces otra consulta foxpro no sabe que es el mimo hilo haci que tiende otro y otro por cada consulta si se hace desde 3 maquinas llegara un punto en el dia en que hay tantos hilos tendidos que es imposible tender mas de forma eficiente. Asi son las aplicaciones en red, el servidor es como un semaforo y le dice cuando pueden consultar una tabla y cuando deben esperar para su consulta. Una buena planeacion deberia significar demoras que se miden en milisegundos. pero ni siquiera hacer esto solo dara dolores de cabeza.

comenta si tu aplicacion tiene un director de trafico, o es otro exe compartido en red.

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

RE:Consuta Red Lenta VFP

Publicado por xx (378 intervenciones) el 21/09/2010 15:40:09
Una vez me paso algo parecido el sintoma al comienzo era que aleatoriamente se quedaba lento el servidor (tambien trabajo con VFP6, tablas libres DBF´s aunque estoy haciendo pruebas con mysql y php) como trabajo con linux no sabia que podia ser, reinstale el servidor y al poquito tiempo el mismo problema luego cuando quedaba lento me llamaron y fui al local y comence a hacer pruebas, el servidor no se colgaba pero tardaba en dar respuesta por las dudas consegui una tarjeta de red le reinstale el SO y hasta ahora funciona eso fue hace 2 años.

Una cosa que debemos saber los programadores es verificar bien los cableados sobre todo si otro lo hace o por lomenos inspeccionar a ojimetro si es un trabajo profesional y lo principal es saber por donde pasan los cables al menos los UTP deben tener por los menos 30 cm de cualquier cableado de tendido electrico y mucho cuidado si en el local hay motores o equipos (medicos) que producen mucha interferencia que bien podrian ser la causa de lentitud en la RED ya que llegan corruptos los paquetes puesto que los equipos deberian resolicitar el paquete causando una demora excesiva.

Tambien se debe cuidar celosamente la correcta ventilacion o mejor dicho controlar la temperatura del servidor y/o cualquier terminal.

No se si es tu caso.

Deberias prestar alguna maquina y reemplazar tu servidor (el servidor debe ser dedicado si es servidor de ficheros) para hacer pruebas si la falla se da aleatoriamente quizas se deba a algun hardware y muy probablemente al disco o la tarjeta de red o quizas al switcher, hub, router etc!!.
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

RE:Consuta Red Lenta VFP

Publicado por Marcelo (L) (171 intervenciones) el 21/09/2010 16:49:31
Tambien podes verificar que antivirus tenes en cada pc y con que frecuencia se actualiza porque algunos antivirus hacen lenta a la pc
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

RE:Consuta Red Lenta VFP

Publicado por victor perez (278 intervenciones) el 22/09/2010 00:21:07
Hola,

Mira yo manejo mi consultorio medico y uso solo dos computadores, cableado y Router (anque inicialmente tenia un swtich, no he visto diferencia entre usar el router o el switch)

Por alli lei que te aconsejaron que no abrieras vistas cargando toda la informacion. Efectivamente eso es lo mejor. Cuando hice mi programa cargaba todo la base de datos a un cursor para luego hacer la consulta. Esto le roba mucho tiempo al servidor para buscar, por ejemplo, un registro en particular.

Ahora lo que hago es lo siguiente:

Cuando entro a la vista ejecuto un metodo llamado Filtro que tiene la siguiente sentencia SQL

Select * ;
from AlmCt ;
where &_key;
order by Codigo;
into cursor _Base

Sele _Base
Thisform.PgfFicha.Page4.lstCltes.rowsource="Codigo,Nombres,Apellidos,Nacimiento,Cedula,Seguro,Telefono,Numero,situacion"

Thisform.PgfFicha.Page4.lstcltes.requery
Thisform.PgfFicha.Page4.lstcltes.refresh
Thisform.PgfFicha.Page4.lstcltes.setfocus
.
Luego, cuando deseo hacer una busqueda lo que hago es lo siguiente, por ejemplo , para buscar un codigo y obtener los datos en pantalla: En el lostfocus del TxtBCodigo (donde introduzco el codigo en el TextBox al lado del option)

_BUSCAME=ALLTRIM(THIS.Value)
_KEY="CODIGO LIKE '&_BUSCAME%'"

IF !EMPTY(THIS.Value)
Thisform.Filtro
ENDIF

Es decir, ejecuto Filtro solo con los datos necesarios y no lleno para nada el GRID con datos que no necesito.

En realidad declarar el _key en el Init no es necesario pues el Filtro no se ejecuta sino hasta que se necesite.

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