el sistema se pone lento...

667 views
Skip to first unread message

Hitiel Hernández

unread,
May 19, 2015, 6:46:46 PM5/19/15
to publice...@googlegroups.com
Buena tarde a tod@s mis compañer@s foxer@s!!!....

En la empresa he desarrollado un pequeño sistema para el control de bodegas.
Tengo los siguientes problemas:
1- Cuando un usuario ingresa al formulario de Compras y otro hace lo mismo el sistema
     se pone lento, de igual modo sucede en las Ordenes de Compra y en otros más.
2- El único formulario (grande) donde no se pone lento es en el mantenimiento de productos.

Acerca del Equipo
3. Actualmente no existe un servidor dedicado, es más bien un servidor con una red
doméstica con Windows 7 y 4 GB de memoria RAm (Intel Pentium G630 de 2.70 Ghz) y
disco duro de 833gb.
4. Aquí tengo una Unidad de Red de 250gb que es donde se almacena el sistema

El día de hoy mi jefe me pidió que investigara sobre un Servidor Dedicado para su adquisición, en ese sentido no tengo experiencia por eso recurro a ustedes para que me orienten al respecto. Que me expliquen las ventajas que se tiene al instalar un Servidor Decidado y cuál versión de Windows debe usarse.

El asunto es que yo me he quejado de que por el servidor o por red es que el sistema se pone lento (porque no tengo otra excusa); pero no estoy seguro. Quisiera también que ustedes que tienen mucho más experiencia en esto me expliquen.

- Espero sus comentarios y desde ya estoy muy agradecido.
-- 

Hitiel Hernández

unread,
May 19, 2015, 6:52:24 PM5/19/15
to publice...@googlegroups.com
Se me escapó decirles que trabajo en VFP 8
--
Sabiduría ante todo; adquiere sabiduría

ZeRoberto

unread,
May 19, 2015, 6:53:16 PM5/19/15
to publicesvfoxpro
Que tipo de Base de Datos usas

francisco prieto

unread,
May 19, 2015, 6:54:41 PM5/19/15
to publicesvfoxpro
Si, es importante que aclares si estas usando un motor de base de datos y cual es?

Saludos,

Pancho
Cordoba
Argentina

Hitiel Hernández

unread,
May 19, 2015, 11:21:20 PM5/19/15
to publice...@googlegroups.com
Son tablas nativas de VFP

Miguel A.

unread,
May 20, 2015, 2:53:44 AM5/20/15
to publice...@googlegroups.com, hiti...@gmail.com
Hola,
Perdona la pregunta porque es un poco de perogrullo, pero ¿tienes los datos en un servidor y los ejecutables en cada uno de los equipos?
Miguel A.

francisco prieto

unread,
May 20, 2015, 7:37:35 AM5/20/15
to publice...@googlegroups.com, hiti...@gmail.com
Ok, Las trabajas como libres o como dbc...

Desde ya igual te digo que para hacer eso las deberías trabajar con un motor... pero bueno seguí respondiéndome y vemos si podemos mejorar la performance actual.

Saludos,

Pancho
Córdoba
Argentina

Carlos Alfaro

unread,
May 20, 2015, 9:07:13 AM5/20/15
to publice...@googlegroups.com, hiti...@gmail.com

Aunque seguramente usar un motor de datos lo agilizará, creo que posiblemente tu problema es la rutina de búsqueda de registros que tienes.

 

Te recomiendo que aun con las tablas libres de Fox, uses comandos selectSQL.

 

Buen día.

 

Carlos Alfaro

francisco prieto

unread,
May 20, 2015, 9:09:33 AM5/20/15
to publice...@googlegroups.com, hiti...@gmail.com
Ahi Carlos difiero...

Con tablas libres es mas rapido es Scan y una buena indexacion y utilizacion del RushMore

Saludos,

Pancho
Córdoba
Argentina

Mario Dal Degan

unread,
May 20, 2015, 9:42:21 AM5/20/15
to publice...@googlegroups.com, hiti...@gmail.com
Nosotros estamos observando el mismo problema. Trabajamos con tablas nativas en una BD.
Hemos revisado que todos nuestros Select estén optimizados (rushmore) y, aún así, tuvimos magros resultados.
La demora se produce si más de un usuario está dentro de opciones donde las tablas que se abren sean las mismas.
Investigando un poco más notamos que cada vez que se realiza un select nuevo se transfieren todas las tablas involucradas.
Por ejemplo: select * from clientes. Cada vez que se hace esta operación se transfiere toda la tabla clientes.
Intentamos haciendo un USE previo y nada cambió.
La "solución" que encontramos es generar cursores con las tablas que difícilmente sean modificadas y trabajamos sobre esos datos.
P.Ej. Considerando que los clientes se modifican poco:
Selec * from clientes into cursor cCli

La tabla factura es más dinámica:

Select * from factura inner join cCli on fac_cli = cli_id

Hemos mejorado un poco, no demasiado.
Saludos.

Eric Natareno Guerra

unread,
May 20, 2015, 9:44:12 AM5/20/15
to publicesvfoxpro

Como haces la consulta de datos?

Lisandro Catashunga mariño

unread,
May 20, 2015, 9:45:18 AM5/20/15
to publice...@googlegroups.com

Amigo, quieres velocidad, quieres optimización, quieres escalabilidad, seguridad entre otras cosas que harán diferencia para tu aplicarivo, solo usa MS Sql o otro Motor de Base de datos, y olvidate de todos esos problemas

francisco prieto

unread,
May 20, 2015, 9:56:38 AM5/20/15
to publice...@googlegroups.com
Mario,

En primer lugar si usas sql con bases nativas de fox te deberías olvidar del asterisco... te doy un ejemplo.

Supongamos que la tabla de clientes tiene 3 campos: Codigo, Nombre y Direccion

Lo mas comodo para el programador es

Select * from Clientes

Pero lo mas performante es

Select Codigo, Nombre, Direccion from Clientes

De todos modos esto no se compara con la velocidad de un Scan

Use Clientes
Scan
EndScan

Saludos,

Pancho
Cordoba
Argentina


Francisco

unread,
May 20, 2015, 10:04:10 AM5/20/15
to publice...@googlegroups.com, hiti...@gmail.com
Has probado el valor de : SET REFRESH TO 

En algunos casos si tienes un valor u otro da mucho más desempeño. Yo particularmente uso SET REFRESH TO 1,0 y cuando voy a realizar operaciones que requieran datos frescos utilizo SET REFRESH TO 1,-1

Saludos.


El miércoles, 20 de mayo de 2015, 0:46:46 (UTC+2), Hitiel Hernández escribió:

Saul Piña Hernandez

unread,
May 20, 2015, 10:21:09 AM5/20/15
to publice...@googlegroups.com, dire...@informatica-apliges.com, hiti...@gmail.com
En mi opinion, creo que se debe a como realiza la consulta y el index de las tablas, además de revisar si no existen problemas de red.

Siempre me ha dado problemas cuando no construyo las consultas tal y como lo recomiendan los compañeros, me da problemas de lentitud. (Me refiero a tablas nativas)

En todo caso, cuando trabajo con tablas nativas, trato de usar mas el comando Seek  para encontrar datos y el sistema, sin problemas de lentitud.

Saludos.



Hitiel Hernández

unread,
May 20, 2015, 10:27:05 AM5/20/15
to publice...@googlegroups.com
Respondiendo a la pregunta de Miguel A. - Efectívamente, tengo todas las tablas en el servidor y los ejecutables en cada terminal.
Respondiendo a la pregunta de Francisco Prieto - Algunas tablas las trabajo libres y otras (por relaciones persistentes) las trabajo en DBC.
Respondiendo a la pregunta de Erick Natareno G. - Utilizo SELECT para todas mis consultas y trabajo con cursores en la edición de registros.

- Creo que olvidarme de usar el * en un SELECT no sería el problema, porque de hecho casi nunca utilizo todos los campso de una tabla
para un reporte / consulta.

El problema es que no tengo idea de cómo utilizar un motor de base de datos como lo sigiere LISANDRO CATASHUNGA MARINO.

Ahora vuelvo a la pregunta. ¿Creen ustedes que utilizando Windows SErver 2010 u otra versión obtendría velocidad?

Carlos Miguel FARIAS

unread,
May 20, 2015, 10:37:17 AM5/20/15
to Grupo Fox
No vi que lo preguntaran, como tienes configurados los archivos temporales? Config.fpw
Están apuntados a discos locales (de cada máquina)?
Los SELECT * son lentos en cualquier motor de bd. Solo se usan si realmente usas todas y todas las columnas.´
Si trabajas con SELECTs y por ende cursores, hay que revisar el buffering.
Para ir leyendo y actualizando los registros, es como dijo Francisco, el SCAN resulta mejor que traer todo y luego actualizar, ya que generalmente no actualizas todo.
Si hay tablas que se modifica poco y nada, mejor copiarlas a discos locales (no pasan por la red).
Saludos: Miguel, La Pampa (RA)

Hitiel Hernández

unread,
May 20, 2015, 10:39:48 AM5/20/15
to publice...@googlegroups.com
Buen día Carlos Miguel, así tengo el COnfig.FPW

collate = Spanish
sysmenu=off
set status=off
SCREEN = OFF
HELP=OFF
REFRES=0
CENTURY=On
EDITWORK=C:\WINDOWS\TEMP\
SORTWORK=C:\WINDOWS\TEMP\
PROGWORK=C:\WINDOWS\TEMP\
TMPFILES=C:\WINDOWS\TEMP\

rem _BROWSER = ""
rem _SPELLCHK = ""
rem _GENMENU = ""
rem _GENGRAPH = ""
rem _GENXTAB = ""
rem _COVERAGE = ""
rem _SCCTEXT = ""
rem _CONVERTER = ""
rem _TRANSPORTER = ""
rem _BUILDER = ""
rem _WIZARD = ""

francisco prieto

unread,
May 20, 2015, 10:43:54 AM5/20/15
to publice...@googlegroups.com
No, la velocidad no te la va a traer un sistema operativo.

La velocidad la podes obtener:

1) Si usas un motor de base de datos, pero para eso vas a tener que rediseñar completamente la aplicacion.
2) Si te olvidas de usar sql de fox y en cambio usas indices, rushmore, seek, scan, set key... Para esto si todo lo tenes programado con sql de fox tambien vas a tener que rediseñar... y para rediseñar y rediseñar quedate con la primer opcion
3) Si no queres rediseñar nada... quita los asteriscos de los comandos select... realiza indices e integridad referencial siempre que puedas... por cada where o having que tengas fijate si tenes el indice correspondiente... utiliza a fondo Rushmore...

Saludos,

Pancho
Córdoba
Argentina

Saul Piña Hernandez

unread,
May 20, 2015, 10:46:51 AM5/20/15
to publice...@googlegroups.com, hiti...@gmail.com
yo no creo que sea problema de server, porque yo en su mayoria tengo el mismo escenario de contar con un "server casero" tu sabes, windows 7, con ram de 4gb etc.   y no he tenido problema de lentitud, salvo lo que te comento, por tener las consultas algo mal escritas.

Si vas a instalar windows server, pues de una vez decidete por un motor de base de datos, para que de verdad veas las bondades de motor de bases de datos.

Por mencionar una de muchas ventajas de usar motor de bd vs dbf:
• es que puedes administrar la base de datos y al mismo tiempo utilizar el sistema.
• Multiples consultas
• Jamás me ha tocado que se corrompan las tablas
• Tienes un arsenal de opciones y seguridad
• Desde que te conectas a la bd, ya esta listo para trabajar en red; etc, etc, etc.

Ejemplos para utilizar motor de base de datos? lo encontré justamente en este foro, y si le agregas que aquí estas en uno de los mejores foros, porque de verdad es muy activo.

Saludos.

francisco prieto

unread,
May 20, 2015, 10:49:56 AM5/20/15
to publice...@googlegroups.com
Saul, a mi con SQL Server 2008 R2 se me corrompieron 2 veces los datos y gracias a que tenía backup pude recuperar...

La corrupción no es tan frecuente, es cierto, pero cuando ocurre los productos para recuperar los MDF son saladitos, así que conviene tener el backup actualizado.

Saludos,

Pancho
Córdoba
Argentina

Saul Piña Hernandez

unread,
May 20, 2015, 11:09:29 AM5/20/15
to publice...@googlegroups.com, fajp...@gmail.com
Saludos francisco, Gracias a Dios, no me ha pasado a mi...je,je 

Dejo una imagen de Admin de MySQL con HeidiSQL  (Haber si se anima Hitler)




Carlos Miguel FARIAS

unread,
May 20, 2015, 11:17:39 AM5/20/15
to Grupo Fox
El archivo config lo veo bien.
Pregunta (perdón si repetidas)
las relaciones entre las tablas:  tablaA INNER JOIN tablaB (a.primaria=b.foranea)?  Foránea indexada?
Los campos que se usan en filtros? Tienen índices? Pueden acelerar la selección.
Los campos por los que se ordenan? Tienen indices? Puede acelerar el ordenamiento
Que usas para actualizar? SEEK + REPLACE o UPDATE WHERE? Si usas SEEK, usas FOUND o función SEEK?
Si usas UPDATE WHERE, conviene asegurarse de incluir la clave primaria.
Si usas SELECT de SQL, los indices están activos o no? Si están activos, rushmore los usa sis o si para recuperar datos, aunque el indice activo no sirva u optimize la consulta, lo que lo hace más lento. Tienen que estar desactivados. SET ORDER TO 0
Si usas SEEK, te conviene usarlo como función y no activar los indices (usar parámetro para indicar indice que usas).
Los selects, para ser rápidos deben enumerar solo los campos necesarios.
Si los formularios esos grandes, acceden a muchas tablas, debes escalonar la apertura (no automática) para que tome los datos a medida que se soliciten (o deban ser mostrados).
Estas son ideas, pero al desconocer la forma en que vas abriendo, recuperando y mostrando los datos es muy dificil ver cual es el cuello de botella (a mi ver el cuello de botella me cuesta verlo, lo tapo con la mano)
Saludos: Miguel, La Pampa (RA)


Hitiel Hernández

unread,
May 20, 2015, 11:31:24 AM5/20/15
to publice...@googlegroups.com
CArlos Miguel Farias, así es como abro las tablas, desde el entorno de datos:
Imágenes integradas 1
- La compañía tiene varias fincas, cada finca es identificada como CENTRO y con un número, ejemplo: 001 - Central, 002 - Finca Las Marías, etc.

Por esa razón en el before open tables utilizo el siguiente código para redireccionar la tabla que se va a abrir, de la siguiente manera:
this.cursor1.cursorsource     = _data+'\centros\'+_centro+'\compra_c.dbf'
this.cursor2.cursorsource     = _data+'\centros\'+_centro+'\moviprod.dbf'
this.cursor3.cursorsource     = _data+'\centros\'+_centro+'\producto.dbf'
this.cursor4.cursorsource     = _data+'\centros\'+_centro+'\compra_d.dbf'
this.cursor5.cursorsource     = _data+'\centros\'+_centro+'\medidas.dbf'
this.cursor6.cursorsource     = _data+'\centros\'+_centro+'\equipos.dbf'
this.cursor7.cursorsource     = _data+'\centros\'+_centro+'\empleado.dbf'
this.cursor8.cursorsource     = _data+'\centros\'+_centro+'\proveed.dbf'
this.cursor9.cursorsource     = _data+'\centros\'+_centro+'\orden_c.dbf'
this.cursor10.cursorsource     = _data+'\centros\'+_centro+'\orden_d.dbf'
this.cursor11.cursorsource     = _data+'\centros\'+_centro+'\config.dbf'
this.cursor12.cursorsource     = _data+'\centros\'+_centro+'\avisos.dbf'

en donde _data es igual a la carpeta donde se instaló el sistema en cada centro, ejemplo: 'C:\SIAC\' o 'Z:\SIAC'
y _centro podría ser '001' ó '002'

y sí utilizo SEEK en todas mis búsquedas y guardo con UPDATE, agrego nuevos registros con INSERT INTO

Daniel Sánchez

unread,
May 20, 2015, 12:26:22 PM5/20/15
to Comunidad de Visual Foxpro en Español
Hitiel, hace 10 años decidi dejar de lado las dbf porque tenia los mismos problemas que se te presentan al usar dbf en un entorno de red, lentitud en las consultas, tal vez algunas inconsistencias de datos, perdida de información al corromperse las tablas por una aplicación colgada o cosas por el estilo (esto último no siempre pero probable).

Logre mejorar bastante la performance usando cursores locales con consultas sql y actualizaciones con update sql, pero como todo paliativo no cura, solo clama la enfermedad, estoy hablando de apenas unas 10 a 15 pc en red local, eso si nada de inalambrico, ya que los sistemas colapsaban, así que todo red física por cable, por lo que pensar en conexiones por internet era algo impensado, así que viendo este escenario me di cuenta que las dbf no daban más para mi perspectiva de negocio y producto presentado a los clientes.

Por lo que opte rediseñar, reescribir y reprogramar todo el software que tenia hasta ese momento, obviamente no era tarea de un día un mes o un año, era un trabajo arduo y de cuesta arriba, ya que tenia que replantear todo el tema de conexión, consulta y actualización de datos a un servidor de bd como sqlserver u otro similar, eso en la parte de bd, pero también aproveche para replantear muchos de los enfoques que tenia mi software los cuales eran taras de solicitudes que no cumplían los lineamientos de una buena gestión de procedimientos, así que aproveche de replantear todo eso en base a la experiencia adquirida en el tiempo.

Pero te dire que todo el esfuerzo puesto en ese momento, ahora reditúa con creces dicha inversión, tengo un software más estable, escalable, que se conecta sin problemas en una red local, ya sea por cable, wifi o internet, con la misma seguridad y confianza desde cualquier lugar, obviamente configurando lo que se tenga que configurar para tal caso.

Por lo que te recomiendo de una vez des el cambio a un motor de bd, aquí es un buen grupo como muchos dicen para que te apoyen en este cambio en tus consultas y demás cosas que necesites para tal caso, lo último que te puedo decir es da el paso que en base a mi experiencia te va ha quitar muchos dolores de cabezas y malas caras de usuarios y clientes.

Saludos
--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047 RPM #948615385
Trujillo - Perú

P  Sugerimos no imprimir este e-mail a menos que sea absolutamente necesario. Protejamos el medio ambiente.

Carlos Miguel FARIAS

unread,
May 20, 2015, 12:27:09 PM5/20/15
to Grupo Fox
No veo razón de direccionar las tablas a cursores, eso implica pasar todos los datos.
Eso de por si es lentisimo.
Lo correcto es apertura de tablas "on demand".
En mi caso, usaba (no programo más en vfp) un metodo donde cuando necesitaba tablas, lo llamaba, si estaba cerrada la abria, si no no. Pero eso en cada punto donde necesitaba la tabla, (al principio).
De la manera que la haces, al abrir cargar tantos cursores, la demora es lógica.
Saludos: Miguel, La Pampa (RA)

Hitiel Hernández

unread,
May 20, 2015, 12:49:32 PM5/20/15
to publice...@googlegroups.com
ok,, gracias a todos por sus consejos.
Aún tengo algunas dudas al respecto de un motor de base de datos:

1.- ¿Cuál es el motor de base de datos  más aconsejable y amigable para un principiante en este sentido?
2.- ¿Cuáles son los costos?
3.- ¿Se necesitará cambiar el servidor (doméstico) que hasta el momento tengo?
4.- ¿Al cambiar todo el sistema a un motor de base de datos (sql) también lo puedo enlazar en línea con los otros centros?

- Espero sus comentarios. muchas gracias

Saul Piña Hernandez

unread,
May 20, 2015, 1:10:55 PM5/20/15
to publice...@googlegroups.com, hiti...@gmail.com
Tengo poco en este tema, pero la verdad me gusta mucho como se trabaja con motor de base de datos, en mi opinion he utilizado MySQL es un motor en donde he encontrado demasiada informacion para implementar y trabajar a un ritmo bastante aceptable.


Aún tengo algunas dudas al respecto de un motor de base de datos:

1.- ¿Cuál es el motor de base de datos  más aconsejable y amigable para un principiante en este sentido?
MySQL. Tienes más opciones, a mi me gusta porque ya tengo experiencia para conectarme desde odbc, administrar desde Programas Gestores, y sobretodo porque la mayoria de los amigos del foro han utilizado MySQL y pues ellos me ayudaron mucho.
 
2.- ¿Cuáles son los costos?
Eso no sabria decirte, porque yo lo utilizo para desarrollo (es decir, no he pagado por usarlo, todavía)
 
3.- ¿Se necesitará cambiar el servidor (doméstico) que hasta el momento tengo?
De preferencia si, por ejemplo si en tu caso es de tipo comercial ya bien establecido y existe presupuesto, no dudes en hacerte de un buen servidor.
 
4.- ¿Al cambiar todo el sistema a un motor de base de datos (sql) también lo puedo enlazar en línea con los otros centros?
Definitivamente que si, los motores de bases de datos, fueron hechos para trabajar en "red y online"  sin ningun problema.

- Saludos!!
 

Hitiel Hernández

unread,
May 20, 2015, 1:13:08 PM5/20/15
to publice...@googlegroups.com
Excelente Saul!!!
muchísimas agracias a todos

francisco prieto

unread,
May 20, 2015, 1:25:01 PM5/20/15
to publice...@googlegroups.com
Para mi el que tiene herramientas mas productivas es SqlServer... pero te aclaro que estoy  cambiando todo a FireBird, dado que SQLServer trabaja sobre servidores Windows y FireBird no tiene ese inconveniente...

En fin ese es uno de los factores...

Con SQLServer Express podes tirar un tiempo largo, con FireBird he notado que no necesitas tanto hard para trabajar, de modo que antes invertir dinero en Hard, invertiría dinero en reprogramar todo u optimizarlo.

Saludos,

Pancho
Córdoba
Argentina

Damian Lana

unread,
May 20, 2015, 2:02:09 PM5/20/15
to publice...@googlegroups.com, hiti...@gmail.com
Buenas tardes, 
                     consulta, en las pc de la red, el antivirus le excluiste los DBF, CDX y FPT?
 Las consultas SQL, hacelas de la menor cantidad de tablas posibles, primero filtra clientes 

y luego filtra movimientos,

Select Codigo, Nombre, Direccion from Clientes into cursor CUr_clientes  where ......

select movimientos, CUr_clientes.nombre  from .....

 Saludos
Damián 

Hitiel Hernández

unread,
May 20, 2015, 2:13:09 PM5/20/15
to publice...@googlegroups.com
No, tendría que excluir dichos archivos en cada terminal y en el servidor?

Damian Lana

unread,
May 20, 2015, 2:31:35 PM5/20/15
to publice...@googlegroups.com, hiti...@gmail.com
Si excluí en la mas lenta para probar...

Sdos Damian

Daniel Sánchez

unread,
May 20, 2015, 2:35:53 PM5/20/15
to Comunidad de Visual Foxpro en Español
En mi caso, uso sqlserver en cualquiera de sus versiones si tienes clientes que su data no pase de 2gb por bd pues sqlserver express corre perfecto, ahora firebird es una excelente opción ya que como comentan no requiere mayor ciencia su implementación o puesta en marcha, lo que si no me decante por este producto era pq no manejaba los valores boleanos o bit, aunque me parece que en esta última versión creo que si lo considera.

Saludos

Staff de Desarrollos EfiMax

unread,
May 20, 2015, 4:15:13 PM5/20/15
to publice...@googlegroups.com

A considerar:

 

Aunque tu sistema realiza consultas SQL considera que al no ser un desarrollo cliente servidor, es tu equipo cliente el que las hace; por poner un servidor más poderoso computacionalmente no necesariamente incrementará el performance en la misma proporción.

 

El equipo cliente es en realidad quien tiene que traer toda la tabla al equipo local para procesarla, bueno pues, quizás no literalmente pero está atacando a toda la información vía red a la carpeta compartida que inevitablemente viajan a través de tu LAN y esto es más crítico si constantemente estás realizando esas consultas:

 

Como mejorar el performance sin cambiar a cliente de tu sistema sin cambiar toda tu programación:

 

1.- El servidor debe de estar conectado via cable nivel 5 si puedes nivel 6 mejor, pero recuerda que el switch de red debe ser compatible para sacarle provecho.

 

2.- Considera un disco de estado sólido para reducir el tiempo de lectura de las bases de datos como un disco secundario en tu servidor: http://efimax.com.mx/que-es-un-disco-de-estado-solido-sdd/

 

3.- Crea un cache en cada equipo cliente, esto es, hay tablas que deben de ser de sólo lectura o que casi no cambian, cuando entre el sistema cliente que copie estas tablas al equipo local y crea un identificador CRC/Fecha inventario en una tabla en el servidor para saber si cambiaron (el servidor se encarga de actualizar el inventario cuando grabe en ellas y actualiza la tabla inventario) y si es así, actualizas el cache del equipo cliente antes de desplegar el sql de la tabla cache del cliente.

 

4.- Para el caso de los equipos entre más RAM mejor; sin embargo también puedes configurar el manejo de RAM para no manejar virtual, lo cual al reducir el uso de disco, se incrementa el rendimiento, pero el equipo debe de tener suficiente RAM deberías de probar.

 

5.- Si cambias a un SO de servidor lo que vas a lograr solamente, será incrementar el número de usuarios concurrentes por recurso de red que para el caso de Windows 7 me parece que es de 10.

 

6.- Los antivirus también snnifean todo el tráfico de red, considera hacer pruebas deshabilitándolos para que evalúes el rendimiento.

 

7.- Finalmente el Swith de red que sea de buena marca y que no sea un HUB. El performance es marcado gracias a que las rutas pregrabadas.

 

Suerte.

 

 

 

____________________________________

Carlos Omar Figueroa López

Ingeniero Industrial y de Sistemas

http://www.efimax.com.mx

http://www.MonitoreoCCTV.com.mx

Mario Dal Degan

unread,
May 21, 2015, 11:12:29 AM5/21/15
to publice...@googlegroups.com, fajp...@gmail.com
Gracias Pancho.
El select que puse fue para ejemplificar, casi no usamos *.
Te quería preguntar cómo utilizas el scan porque no entendí.
Si quisiera utilizarlo para un reporte que combine clientes con facturas por ejemplo, cómo hago?
Saludos.

Mario

francisco prieto

unread,
May 21, 2015, 11:28:47 AM5/21/15
to publice...@googlegroups.com
Vamos a suponer nuevamente una tabla de comprobantes donde tenes que recorrer únicamente los comprobantes FC

Con un select harías...

Select tipo,numero,fecha,importe from comprobante where tipo='FC'

Esto andaría mas rápido si la tabla tiene un indice por tipo, pues de lo contrario si bien el select lo resuelve al vuelo lo que hace es hacer un índice por ese campo en forma temporal y luego realiza la comparación (es decir no es mágico y para fabricar la magia se toma su tiempo)

Pero sigamos con el ejemplo como el indice por comprobante ya lo tenes que tener, es mas rápido aun hacer

Select Comprobante
seek 'FC'
scan while tipo='FC'
...
...
...
endscan

y si fuera con un report....

Select Comprobante
seek 'FC'
report form mireporte while tipo='FC'

Fox tiene muchas herramientas para hacer este tipo de cosas mucho mas rápido y apoyado en Rushmore... Claro que estamos hablando de tablas que no tienen millones de registros, porque si ese fuera el caso la única solución es usar un motor.

Saludos,

Pancho
Córdoba
Argentina

Jorge Montúfar

unread,
May 21, 2015, 11:47:28 AM5/21/15
to publicesvfoxpro
buenos dias yo tuve 2 problemas de lentitud, uno fue con vfp6 y ahi eran los bugs, en otro lugar siempre con tablas nativas utilizandolas con dbc, el problema era que la red no era cableada y lo resolvi cableandola.

Desde Guatemala un saludo para todos

Hitiel Hernández

unread,
May 21, 2015, 11:59:19 AM5/21/15
to publice...@googlegroups.com
yo utilizo DBC pero no incluyo todas las tablas, solo aquellas que he relacionado permanentemente, y si, toda la red es cableada.

Jorge Montúfar

unread,
May 21, 2015, 2:00:46 PM5/21/15
to publicesvfoxpro
bueno yo revisaria el formulario que tablas abre y reordenaria porque se debe de estar quedando enloopado en alguna tabla o index.

Reply all
Reply to author
Forward
0 new messages