FoxPro/Visual FoxPro - sistema lento en red

 
Vista:

sistema lento en red

Publicado por Mauricio S. (105 intervenciones) el 27/07/2009 15:12:46
Hola gente, le cuento tengo 2 maquinas en red. donde esta la BD tiene Win XP pentium IV 2.0 256MB mother intel red 10/100, otra win XP 384MB Atlon 1.6 mother Epox red 10/100. y Swich encore 10/100.
Cada maquina tiene un ejecutable propio, es decir que la logica no viaja por la red. Otro detalle es que en mi programa de inicio habro la BD y todas la tablas en modo compartido y luego en cada formulario selecciono el area de trabajo con la que necesito trabajar con SELECT.
El sistema maneja aproximadamente 15 tablas y en total la BD tiene 28MB con unos 100.000 registros.
Mi problema es que en la maquina donde NO esta la BD (es decir que busca la info en otro lugar) cada vez que hago una consulta SQL demora al rededor de 6 a 10 segundos en devolver los resultados. Esta consulta esta almacenada en la maquina que tiene la BD y cada vez que la necesito desenlazo el grid, llamo la consulta con DO ...... consulta.qpr y vuelvo a enlazar el grid.
Trabajo con VFP 7.0 si alguien puede ayudarme con algunas recomendaciones se lo voy agradeciendo de antemano.

MUCHAS GRACIAS.
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:sistema lento en red

Publicado por Mario (199 intervenciones) el 27/07/2009 17:19:26
Probá las siguientes alternativas para acelerar tus consultas Select
agrega un índice a todas tus tablas de la siguiente forma:
index on deleted() tag borrado
Indexa, además, por los campos involucrados en la cláusula where.
Si puedes utiliza == en lugar de =
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:sistema lento en red

Publicado por Mauricio S. (105 intervenciones) el 29/07/2009 13:35:23
Gracias Mario por tu ayuda, estuve leyendo un poco sobre lo que me recomendas para ver como aplicarlo, pero hay algo que no me queda del todo claro. Las tablas que le hago el select tienen campos con indice lo mismo debo indexar en la consulta? la verdad nunca lo habia usado.

Gracias.
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:sistema lento en red

Publicado por Mario (199 intervenciones) el 29/07/2009 16:52:33
Las tablas deben estar indexadas por los campos que utilizas en el WHERE del SELECT.
Por ejemplo
Selec * From clientes where codigo=10
La tabla clientes deberá estar indexada por codigo para aprovechar la optimización Rushmore (para más información podes consultar la ayuda)
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:sistema lento en red

Publicado por Mauricio S. (105 intervenciones) el 30/07/2009 01:54:38
Gracias Mario, la verdad no sabia que los indices mejoraban la performance en una consulta SQL pense que solo era para funiones como seek. voy a hacer las pruebas y luego te cuento. Por ultimo es descabellado poner muchos indices en una tabla? pregunto esto porque en las consultas utilizo la mayoria de los campos. Nuevamente Muchas gracias
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:sistema lento en red

Publicado por Mario (199 intervenciones) el 31/07/2009 22:57:40
Lo descabellado o no depende de lo que denomines "muchos índices".
Utilizás la mayoría de los campos en el WHERE? Rushmore utiliza los índices para los campos que figuran en el where
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