Velocidad de ejecucion de un programa en red

14/05/2008 - 12:18 por [Juanjo] | Informe spam
Hola grupo:

Hace unos meses desarrolle un programa C# + Access (en principio iba a
ser monopuesto). Me ha pedido
que si se puede instalar en otro equipo y acceder a la misma base de datos
Access.

Hice las modificaciones, cambie los archivos de configuracion, comparti
la carpeta de access y ok.

El problema, desde el equipo "servidor" que tiene la base de datos (unos
12 MB), el programa va bien, va rapido,
pero desde el equipo cliente, uff, y ya no se si el problema es del Access o
que el equipo esta conectado al
"servidor" por unos 50 metros de cable con una conexion de 10 Mb, porque los
dos equipos son relativamente
nuevos (pentium 4)

Alguien me puede dar una opinion si es por el access o por la conexion?

Gracias.

Preguntas similare

Leer las respuestas

#6 Alfredo Novoa
14/05/2008 - 14:34 | Informe spam
Hola Alberto,

On Wed, 14 May 2008 14:08:33 +0200, "Alberto Poblacion"
wrote:

Depende de cómo de optimizado esté el programa. Si las consultas están
bien pensaddas y se pueden resolver mediante los índices de Access y
devuelven un pequeño número de registros, entonces debe de funcionar bien
con esa red.



No necesariamente. Lo importante no es que devuelvan un pequeño número
de registros sino que en los cálculos de las consultas intervengan un
pequeño número de registros pequeños.

Por el contrario, si haces una consulta contra una tabla "gorda" y no se
puede resolver por índices, y tiene que dar un barrido completo a la tabla
para resolver la consulta en lado cliente, la cosa varía: Imagínate que
tienes una tabla que ocupa 10 MB dentro del .mdb. La conexión de 10 Mbps
probablemente te dará unos 0,8 MB/s una vez tenida en cuenta la sobrecarga
de los protocolos, latencias de red, etc. Resultado: el barrido completo de
la tabla de 10 MB requiere 12 segundos. Si esto te ocurre con frecuencia
desde el programa cliente, se te queda "congelado" durante 12 segundos cada
vez que ejecuta un Select de este tipo. Remedio: revisar las consultas que
transmite el programa y asegurarse de que todas se pueden resolver
eficientemente mediante índices.



Si tienes tablas de muchos de megas y consultas complejas con
agregados, va a ir de pena hagas lo que hagas.

De todas formas nunca te vas a acercar a la velocidad de un SGBD. Y
eso por no hablar de la fiabilidad.


Saludos
Respuesta Responder a este mensaje
#7 Alberto Poblacion
14/05/2008 - 15:11 | Informe spam
"Alfredo Novoa" wrote in message
news:
De todas formas nunca te vas a acercar a la velocidad de un SGBD. Y
eso por no hablar de la fiabilidad.



Totalmente de acuerdo. El único problema podría estar en que tengan la
aplicación ya desarrollada y no dispongan del tiempo y recursos necesarios
para adaptarla. Pero si se puede, desde luego que es preferible utilizar Sql
Server en lugar del JET Engine.
Respuesta Responder a este mensaje
#8 [Juanjo]
14/05/2008 - 18:33 | Informe spam
Gracias por los comentarios,

La tabla sobre las que mas se nota el retraso tiene actualmente unos
70.000 registros, con vistas a crecer.

Por lo general, son consultas no son complejas:inserte,update, select
con una o dos condiciones que devuelven pocos registros no mas de 10.

He hecho una prueba conectando 2 equipos con un cable de 3 metros a 100
MB y la velocidad es bastante aceptable, no llega a ser como el equipo donde
esta el access pero ni mucho menos son los 10 segundos que
tarda en la misma prueba con 50 metros de cable a 10 MB.

Lo de "rehacer" el programa aunque utilizo DataSet que seria mas o
menos "reescribir" las consultas y el resto no tendria que tocarlo, lo veo
complicado, tambien por lo que he comentado, el programa lo entrego con su
instalador por lo que con access por lo que el cliente lo instala sin
necesidad de que yo tenga que hacer algo, en cambio si lo entrego con el sql
server,supone instalar el sql, habilitar cortafuegos, habilitar acceso
remoto al sql,...
que si tengo que migrar lo tendre que hacer, pero ahora mismo para uno o dos
clientes supone un "esfuerzo" extra.

Un saludo


"Alberto Poblacion"
escribió en el mensaje de noticias
news:
"Alfredo Novoa" wrote in message
news:
De todas formas nunca te vas a acercar a la velocidad de un SGBD. Y
eso por no hablar de la fiabilidad.



Totalmente de acuerdo. El único problema podría estar en que tengan la
aplicación ya desarrollada y no dispongan del tiempo y recursos necesarios
para adaptarla. Pero si se puede, desde luego que es preferible utilizar
Sql Server en lugar del JET Engine.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida