FoxPro/Visual FoxPro - Propiedades para RED

   
Vista:

Propiedades para RED

Publicado por Carlos ACS cr_alayo@hotmail.com (141 intervenciones) el 11/09/2012 15:49:46
Hola amigos expertos...
hace varios años programe un sistema que trabaja en red desde sus inicios, y no tenia ningún problema ni detalle de lentitud al trabajar dos o mas usuarios al mismo tiempo. Ahora, programe un nuevo sistema pero, al trabajar en Red, este demuestra cierta demora para recuperar datos desde sus tablas (DBFs) cuando están dos usuarios al mismo tiempo, Quisiera saber que propiedades especificas óptimas deben tener los formularios, tablas, entorno de datos, etc etc etc.
Gracias por su Apoyo...
Carlos.
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

Propiedades para RED

Publicado por Fidel (321 intervenciones) el 12/09/2012 17:39:55
Para trabajar en una LAN con eficiencia, necesitas tener unos pocos elementos en cuenta.
1) Calidad del Servidor
2) Configuración de la red (prefiero las IP estáticas)
3) Ubicación de los ejecutables. La red se alivia si los ejecutables están distribuidos en las terminales en lugar de estar en el servidor
4) Ubicación de los archivos temporales. Deben generarse en cada estación de trabajo.
5) Si recuperas datos de tablas por SELECT SQL, en las tablas que contienen gran cantidad de campos, evitar SELECT * por la lista de campos que se necesitan. También fijate en optimizar el WHERE cExpresion.
6) Si estás trabajando con índices y tenés rutinas de regeneración de índices, asegúrate de iniciar la reindexación ELIMINANDO las etiquetas de índice.
USE MITABLA IN 0 EXCLUSIVE
select MiTabla
DELETE TAG ALL
INDEX ON campo1 TAG Indice1
etc.
USE
De lo contrario, las entradas de la tabla de índice se irán multiplicando y el sistema se puede poner un tanto pesado.

7) No utilizar en lo posible, comando que bloqueen la cabecera de tabla. (append from, por ejemplo)
8) Determinar una estrategia de bloqueos de modo que no queden registros bloqueados cuando estos bloqueos no son necesarios.
9) Si utilizás bloqueo manual, usar If Rlock() , unlock en lugar de Flock. Recordar que el comando UNLOCK es necesario para evitar que se quede un registro bloqueado inútilmente.
10) Si utilizás CursorSetprop("Buffering",5,cNombreTabla) el parámetro 5 es el más recomendado.
La tabla se bloqueará realmente cuando se ejecute TableUpdate(). Mientras la edición de datos queda en buffer.
11) Recurrir a una estrategia de avisos cuando una operación no deba ser accedida por más usuarios al mismo tiempo (por ejemplo, que dos usuarios intenten pagar la misma factura a un proveedor).
12) Si tienes tablas indexadas y efectúas búsquedas por índice, contemplar la alternativa de la función INDEXSEEK(xcnValor,.F.,cTabla,cEtiqueta). Ahí buscas en la entrada de índices pero no se mueve el cursor en la tabla. luego, si devuelve .T., Indexseek(xncValor,.T.,cTabla,cEtiqueta) y ahí mueve el puntero.
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

Propiedades para RED

Publicado por richard (174 intervenciones) el 02/11/2012 16:53:59
- Muy Buena la explicacion de fidel.

Pero mejor utiliza una verdadera base de datos,

libres Hay varias por ejemplo , FireBird - postgres - Mysql

Yo cambie todas mis aplicaciones de la bd nativa a FireBird y Postgres,

tienes q hacer algunos cambios en el codigo de programacion

saludos

richard
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