** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Optimización en red de base de datos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Optimización en red de base de datos

 Responder Responder
Autor
Mensaje
lupecinda Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Abril/2005
Localización: España
Estado: en línea
Puntos: 70
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lupecinda Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Optimización en red de base de datos
    Enviado: 08/Noviembre/2018 a las 14:13
Hola. Tengo una base de datos backend-frotnend en servidor en red que con los años ha ido creciendo en número de tablas y de registros.
Voy a hacer el cambio desde access 2003 a 2013 y quiero mejorar los recursos que se comparten en una red con 10 usuarios y bastantes tablas. 
La pregunta es si se consumen muchos recursos de red al vincular las tablas con el servidor o solo cuando se ejecuta un recordset para obtener los datos seleccionados. 
Debo optimizar la programación en vba para vincular solo las tablas que necesito en el momento o vincularlas todas al inicio no va a afectar a la velocidad en red?
Debo tener en local el máximo número de datos que no cambian habitualmente para acelerar el rendimiento?
No sé si me expreso con claridad.
Gracias de antemano por vuestras respuestas.
Saludos
Carlos

Lupita
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: España
Estado: en línea
Puntos: 10436
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Noviembre/2018 a las 15:03
La red 'solo' se utiliza cuando lees datos, no cuando la BD está vinculada.

Yo no pondría datos en local, por el engorro que supone mantener esas tablas y el distinto tratamiento de los datos locales y los del BackEnd.

¿Usas la tabla tonta?

La manera de aumentar mucho, pero que mucho la velocidad es trabajar con formularios desconectados y Databases externas. Échale un vistacito a esto

Otra cuestión es no tener formularios con muchos subformularios incrustados, que hacen que cada vez que tocas algo haya que mover muchos datos.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
lupecinda Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Abril/2005
Localización: España
Estado: en línea
Puntos: 70
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lupecinda Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Noviembre/2018 a las 18:12
Hola Mihura,
Muchas gracias por tu ayuda.
Sí trabajo con tabla tonta y con tablas vinculadas.
Nunca se me había ocurrido la base de datos externa. Tengo que declararla cada vez que ejecuto un recordset o puedo hacerlo de forma general al iniciar el programa como la vinculación de tablas que hago ahora?
Saludos
Carlos
Lupita
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: España
Estado: en línea
Puntos: 10436
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Noviembre/2018 a las 18:40
Yo lo hago al inicio del programa ... otra cosa es la comprobación de que esté abierta, cualquier casque que inicialice las variables globales lo hará con la declaración de una database externa.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
rokoko Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 16/Febrero/2008
Localización: Pamplona
Estado: en línea
Puntos: 1423
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita rokoko Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Noviembre/2018 a las 19:50
No se si te servira de ayuda, pero yo me he ido dando cuenta con el tiempo que llamar por ejemplo de un cuadro combinado a varias tablas que entre si tienen una relacion para obtener datos de las esas tablas es mucho mas lento que si las tienes en una, logico. Con esto quiero decir que aun pudiendo hacerlo en varias tablas para no duplicar datos, es mejor a veces duplicarlos( siempre que no sean datos importantes como dni, nombre, direcciones, precios....etc) sale mucho mejor en cuanto a rendimiento en red.
Por ejemplo yo tenia una tabla con clientes, cada cliente tenia asociado con un numero una categoria y esa categoria con otro numero el turno, asi no repetia los turnos ni categoria en la tabla clientes, un turno me valia para muchas categorias y esa categoria para muchos clientes, pero era mas lento, opte por poner todo en la tabla clientes poniendole a cada uno su categoria y turno, y el rendimiento era mejor, esas tablas de categorias y turnos tenian muyyy pocos registros pero aun asi era mas lento.

Publicado originalmente por Mihura Mihura escribió:

¿Usas la tabla tonta?

La manera de aumentar mucho, pero que mucho la velocidad es trabajar con formularios desconectados y Databases externas. Échale un vistacito a esto


Con lo de formularios desconectados quieres decir hacerlo por vba, como por ejemplo con tu rutina??
Function RT_RutaTabla(Nombretabla As String) As String
    RT_RutaTabla = "[" & constDirectorio & ";PWD=" & constPass & "].[" & Nombretabla & "]"  
End Function

Saludos
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: España
Estado: en línea
Puntos: 10436
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Noviembre/2018 a las 20:16
rokoko,
eso es.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
lupecinda Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Abril/2005
Localización: España
Estado: en línea
Puntos: 70
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita lupecinda Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 08/Noviembre/2018 a las 22:17
Y usar una rutina para que cierre el programa si no hay actividad (ratón, teclas, etc) en unos minutos hasta digamos una pantalla inicial como el control de usuarios y a partir de ahí reconectar con la base de datos externa, ¿sería una buena solución a mantener una buena conexión sin "casques"?
Muchas gracias de nuevo a todos por la ayuda.
Lupita
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable