El problema planteado no puede depender de la codificación, debería estar hecha
a propósito mal para que se de el problema de velocidad.El problema
posiblemente sea la red, cual problema? algo que produzca ruido que obligue a
reenviar los datos por perdida. Eso se debería comprobar con algún software que
detecte si la red falla físicamente. Fox Dos se caracterizaba por andar
razonablemente bien hasta con 16 usuarios a mediados de la decada del '90, con
redes que con suerte llegaban al megabit, ahora que cualquier red camina en 100
megabit, tiene que volar.Lo que no me queda claro es lo siguiente:a) Servidor:
Tiene Datos y los EXE?b) 2ª máquina: Abre exe local o desde servidor? Mejor si
el programa abre local, un exe de varios megas puede tardar un ratito si entra
y sale en cada consulta.c) Está bien armado el config? Configuraste que los
archivos temporales y trabajo estén disco local?d) Los archivos se abren
compartidos? Shared?, el Again es solo si se abre la misma tabla en la misma
aplicaciòn, para que asigne un área nueva y no cierre-abra.e) Las tablas tienen
indices apropiados?f) Los datos relacionados (más de una tabla) los obtienes
con SELECT (SQL), SET RELATION, Filtros, como?Si podes aclarar lo anterior,
podemos ir fijando el ámbito donde puede estar la fallaSaludos: Miguel, Santa
Rosa (LP)
El Martes, 8 de noviembre, 2016 17:25:57, Ing. Eric Zbrun
<[email protected]> escribió:
Claudio hace algunos años arme un sistema de reserva de turnos y manejos de
historias clínicas y tenía más o menos de 10 usuarios. Todo bajo DBF. Tenía un
server dedicado que era un Clon (nada importante) con un Windows XP. Tuve un
problema de velocidad y todo se debía a que el cable que llevar la conexión de
LAN a un swicth secundario estaba con micro cortes. El tema al tener 2 PC es
ver cómo se comporta en tu PC el sistema, por ahí son cosas obvias como
chequear la como esta disco rígido, velocidad de acceso, hay que
desfragmentarlo. (Memoria de la PC, estado de la Red (hay micro cortes?),
etc.). Otras temas también es como funciona tu sistema en esa PC que es server
si podes ejecútalo más de una vez baja la preformas? Puede ser un problema en
el desarrollo, pero puede ser probable que al ser un tema de acceso a la los
DBFs y ser tan pocos equipos que tengas que descartas estos puntos que te
detalle.Saludos.Eric! El 2016-11-08 16:45, rafael copquin escribió:
Lo más básico es verificar que ambos forms tienen sesión privada de datos, de
manera que lo que hagas en uno de ellos no afecta para nada lo que hagas en el
otro.
El exe del programa debería estar en cada una de las máquinas, accediendo a
los datos que tienen que estar en una sola máquina, la que hace de server.
Que abras las tablas en el load event con "use tutabla alias tualias" o en el
entorno de datos no afectaría. Pero no creo que te haga falta usar again,
aunque eso tampoco afecta la velocidad.
Una forma alternativa sería abrir las tablas, seleccionar los registros con un
select, cerrar la tabla original, modificar el select y al grabar abrir la
tabla, grabar y volver a cerrar.
Pero no creo que en un escenario de dos máquinas ese sea el problema.
Si usás vistas, deberías tenerlas en una DBC separada de la DBC de las tablas
y poner en cada una de las máquinas la DBC de las vistas. Con eso te asegurás
un encapsulamiento completo de los datos. Mejor que vistas es usar cursor
adapters, entre otras cosas porque no necesitás una DBC donde alojarlos, quedan
simplemente formando parte del código del programa.
No uses browse en los forms sino grids. Y como digo arriba, en las grids usa
cursores, no la tabla directamente, y en cada cursor traé solamente la cantidad
de registros que se ven en la grid, por ejemplo 10 o 20. Para ver otro lote de
10 o 20 registros, usá paginación. De esa forma el tránsito en la red se reduce
al mínimo y por ende aumenta la velocidad.
No necesitás cambiar de máquinas ni migrar a SQL
Rafael Copquin
On 08/11/2016 14:37, Claudio Villarreal wrote:
Hola Colisteros
Tengo un problema con un form el cual les paso a detallar.
En un sistema de una clínica tengo instalado el sistemas en 2 PC (win XP y
Seven). El sistema esta instalado en unas de la PC, la cual hace las veces de
servidor. Las tablas (Nativas de FOX) las abro con AGAIN y ALIAS en cada vez
que se abre el form. El problema es que cuando se abre el form de AMB de Turnos
en una de la PC servidor esta funciona bien y el medico abre su agenda en la
otra PC, la agenda se vuelve muy lenta en todo (cuando se abre el form, cuando
actualiza las vistas, cuando sale de la atención del paciente y vuelve a la
agenda, etc.). Pase el sistema a la PC del medico, la cual es mas nueva, y el
problema sigue, pero al contrario, la agenda del medico funciona bien y el ABM
de Turnos se pone lento.
Si paso el sistema a una tercera PC se ponen lentos los dos forms.
Alguna idea de como solucionarlo? Necesitare un server? O tendre que migrar
todo a SQL ?
Desde ya muchas gracias
Claudio
--
Eric Zbrun
Ing. en Sistemas Informáticos
Sistemas C&P