La Web del Programador: Comunidad de Programadores
 
    Pregunta:  33654 - VB ENLAZADO POR ODBC FUNCIONA LENTO
Autor:  Guillermo Lopez
Creamos una aplicacion en VB 6 los datos estan contenidos en tablas de Micrososft Access y los enlazamos por medio de un ODBC y controles ADO, cuando lo manejamos en el disco local la aplicacion corre bien sin embargo en Red (windows 2000) es demasiado lenta, los hubs y concentradores trabajan a 100mbs.

gracias

  Respuesta:  Rafael Hernamperez Martin
Hola, Guillermo,

Para comprender el por que de esa lentitud hay que analizar varios puntos:

1) Access es una base de datos de juguete, y ademas bastante lenta (empaqueta todo (tablas, indices, consultas, etc...)) en un unico fichero. Asimismo, puede llegar a la inconsistencia y corromperse.
2) ODBC es una capa intermedia que pone en contacto un ordenador en red con la base de datos. Es un interprete al cual llegan peticiones de un cliente, las delega a un driver especial para la base de datos en cuestion, las analiza, las traduce, las manda a la base de datos, que las interpreta, ejecuta y retorna resultados. Como puedes imaginar, esto seria lo mismo que tener a un mensajero por medio que esta entre un emisor y un receptor.
3) Tambien hay que tener en cuenta que en red la informacion va mas despacio que directamente desde el disco duro de tu maquina. Si a esto se le une que el servidor tiene otros procesos funcionando, y debe asignar una parte de su tiempo de ejecucion a atender las peticiones de bases de datos, nos encontramos con un embudo.
4) La red tambien influye en la cantidad de trafico que hay y en la cantidad de informacion que circula a traves de ella. He vivido casos de dejar una red entera (funcionando con un ancho de banda muy bueno, no una red NE2000 normalita, si no por ADSL), totalmente colapsada porque uno o varios miembros de la red se estaban bajando canciones con el extinto Napster o peliculas de DivX.

Lo habitual para estos casos es lo siguiente:

1) Utilizar una base de datos profesional, como Microsoft SQLServer, DB2 u Oracle. Son autenticos formula1 en el proceso de informacion.
2) Tener un servidor dedicado exclusivamente a la base de datos. Esto optimiza y descarga de trabajo a ese servidor.
3) En el caso de una aplicacion VB deberas utilizar ODBC, pero en aplicaciones Java, hay drivers directos que evitan el ODBC, con lo que se optimiza los accesos a la base de datos.
4) Colocar un proxy que detecte descargas ilegales por puertos no deseados, con lo cual, ademas de evitar que los usuarios utilicen aplicaciones como KaZaa y similares, tambien se evita que desde fuera puedan introducirse hackers u operen caballos de troya.

Espero que estos consejos sean de tu interes y utilidad. Un saludo

Rafael Hernamperez Martin