Acceso a bd lento
Estoy haciendo un programa en visual basic 6.0 que ataca una base de datos hecha en access 2000.
La conexión a la BD la hago de la siguiente manera:
Dim bd As New ADODB.Connection
Dim rs As New ADODB.Recordset
bd.Provider = "Microsoft.Jet.OLEDB.4.0"
bd.Open RutaBD
rs.Open "select * from usuari? , adOpenForwardOnly, adLockOptimistic
If rs.BOF And rs.EOF Then
...
Else
...
End if
Mi Problema es que durante la ejecución del programa tengo que hacer un montón de peticiones a la base de datos y teniendo la bd en un equipo remoto la velocidad con la que accedo es bastante decepcionante. He modificado mi programa para que haga las mínimas peticiones posibles con el mismo resultado pero sigue siendo demasiado lento.
Ejecutando las rutinas paso a paso me ha parecido que la que tiene reales problemas de velocidad a parte de alguna sentencia sql compleja es abrir la bd (bd. Open rutabd).
Mis preguntas son:
Podría por ejemplo abrir una conexión a la bd, ¿al inicio del programa i cerrarla cuando se cierre este?
¿Esto daría problemas al tener varios usuarios conectados?
¿O bien el método empleado es el correcto y lo que falla es el gestor de BD Access y debería usar por ejemplo MySQL?
A ver que puedes comentarme.
La conexión a la BD la hago de la siguiente manera:
Dim bd As New ADODB.Connection
Dim rs As New ADODB.Recordset
bd.Provider = "Microsoft.Jet.OLEDB.4.0"
bd.Open RutaBD
rs.Open "select * from usuari? , adOpenForwardOnly, adLockOptimistic
If rs.BOF And rs.EOF Then
...
Else
...
End if
Mi Problema es que durante la ejecución del programa tengo que hacer un montón de peticiones a la base de datos y teniendo la bd en un equipo remoto la velocidad con la que accedo es bastante decepcionante. He modificado mi programa para que haga las mínimas peticiones posibles con el mismo resultado pero sigue siendo demasiado lento.
Ejecutando las rutinas paso a paso me ha parecido que la que tiene reales problemas de velocidad a parte de alguna sentencia sql compleja es abrir la bd (bd. Open rutabd).
Mis preguntas son:
Podría por ejemplo abrir una conexión a la bd, ¿al inicio del programa i cerrarla cuando se cierre este?
¿Esto daría problemas al tener varios usuarios conectados?
¿O bien el método empleado es el correcto y lo que falla es el gestor de BD Access y debería usar por ejemplo MySQL?
A ver que puedes comentarme.
2 Respuestas
Respuesta de lucasnet
1
Respuesta de ignacioproso