Visual Basic - Optimizacion de Base de Dato

Life is soft - evento anual de software empresarial
 
Vista:

Optimizacion de Base de Dato

Publicado por mendozada (27 intervenciones) el 13/12/2011 12:38:02
Hola Quisiera solicitarles por favor me aconsejaran que podria hacer para optimizar el tiempo de respuesta de una base de datos en Access .

Tengo puntualmente una tabla que posee 155000 registros y metos los datos dentro de un listview utilizando ADO. ( La base de datos ya esta compactada)

el tiempo de cargado del listview es de aprox 1 min .


Quisiera saber si existe algun metodo funcion o lo que fuere para cambier el tiempo de respuesta o la otra opcion que tengo es migrar a una base de datos ya sea MySql o Sql Server , pero ahi la consulta es si realmente mejoraria el rendimiento .


Desde ya muchas gracias

Diego
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
sin imagen de perfil
Val: 119
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Optimizacion de Base de Dato

Publicado por Christian (713 intervenciones) el 13/12/2011 18:01:30
1) Primero que nada hay que ver si la base esta normalizada.
2) Despues podes agregar las consultas a la base y llamarlas desde VB (tal como si fuesen stored procedure en SQL) y no escribir el codigo de la consulta dentro del codigo del programa.
3) Y la ultima seria paginar el recordset que devuelve los datos, con ADO es sencillo.
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
sin imagen de perfil
Val: 119
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Optimizacion de Base de Dato

Publicado por Christian (713 intervenciones) el 13/12/2011 18:02:58
Una mas que me olvidaba, mencionaste listview???
porque no probas en cargar los datos en un MSHFLEXGRID .
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

Optimizacion de Base de Dato

Publicado por mendozada (27 intervenciones) el 13/12/2011 18:19:48
Christian, gracias por tu pronta respuesta, te comento .

La base tiene solamente una tabla con esta cantidad de datos , osea que se puede decir que esta normalizada porque no tiene relaciones,

Lo de llamar las consultas hechas acceess desde Vb eso lo voy a probar, realmente no medi el tiempo entre una y otra consulta.

Con lo del MsFlexigrid Vs el Listview, te digo que gana el Listview, es mas rapido para la carga de registros ,

ahora lo que me interesa es saber como hacer la paginacion del recordset , ya que estoy trabajando con ADO (que a mi parecer es tambien un poco mas rapido que el DAO )


Te agradeceria si me pasas un ejemplo de paginacion en ADO .

Muchas Gracias !!!!

Diego
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
sin imagen de perfil

Optimizacion de Base de Dato

Publicado por Jose Manuel (4 intervenciones) el 13/12/2011 21:18:59
Mendoza hola pana como me ayudaste un poco te puedo ayudar aca

bueno para cargar los datos mas rapido tambien exite datagrid es muy rapido carga las cosas en 1 segundo una ves que tengo el datagrid

1) colocas un datagrid
2)colocas un control data y en las propiedad busca connect colocas base de datos y despues te bas abajo databasename: hay busca el nombre de tu base de datos y luego hay mismo en las propiedades te vas para RecordSource hay busca la tabla que quieres que te muestre los datos
3)en las propiedades del datagrid buscas DataSource hay pones el data que creaste y listo hay tienes todo en cuestion de 1 segundo

Espero aber ayudado en algo ps bye espero te contactes con migo necesito tu ayuda en algo que tu respondiste

como te dije antes tambien se algunas cosas en que te puedo ayudar bye ps me agregas a mi correo [email protected]
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
sin imagen de perfil
Val: 119
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Optimizacion de Base de Dato

Publicado por Christian (713 intervenciones) el 14/12/2011 02:41:56
Lo que te comenta Jose es buena opcion en este caso que quizas tengas una sola consulta.
El problema de usar controles como adodatacontrol o data control, es que si tenes varios de ellos en uno o mas formularios tendrias que estar cambiando las propiedades de todos si por ejemplo cambia algo sencillo como el nombre de la base.
Haciendolo por codigo ganas en performance, y ni hablar si logras modulizar tu codigo por ejemplo en tres capas, donde para el ejemplo anterior solo tocarias la capa de acceso a datos.

Por eso repito, es buena alternativa en el caso de una aplicacion chica y que tenes que hacer rapido.

cualquier cosa pasame la base y el proyecto que lo convierto paginando y metiendo la consulta en la base no tengo problema mi mail es

[email protected]
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
sin imagen de perfil
Val: 119
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Optimizacion de Base de Dato

Publicado por Christian (713 intervenciones) el 14/12/2011 02:33:25
Mira ejemplos para paginar un recordset tenes en esta pagina.

http://www.recursosvisualbasic.com.ar/htm/tutoriales/ado.htm

en la pagina del guille tambien hay ejemplos

despues yo me referia al mshflexgrid, porque podes pasarle un recordsource como parametro directamente.

algo asi

Set MSHFLEXGRID1.Recordsource= Rs (chequealo por las dudas)

osea te evitas de hacer un while para cargar el listview, creo que ganarias tiempo

saludos
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

Optimizacion de Base de Dato

Publicado por Jose Manuel (25 intervenciones) el 14/12/2011 16:04:09
Christian usted me ayudaria en un sistema de punto de venta que estoy haciendo ???

No tengo idea como hacer la parte de venta me refiero en la parte de codigo

yo lo estoy haciendo como un supermercado que cada producto tiene un command button y yo quiero que al yo pulsar un command button me pase el producto al los text

otra cosa a los text le cree matriz no se si sera asi

ok sigo que cuando yo pulse un boton me agregue al producto al text y si quiero vender otra cosa me coloque el siguiente producto abajo o como sea pero necesito esa ayuda tuya no se si sabras como hacerlo ? espero tu respuesta ya te agregue al hotmail mi correo es [email protected]
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

Optimizacion de Base de Dato

Publicado por mendozada (27 intervenciones) el 14/12/2011 17:08:07
La Verdad Christian que me diste un muy buen dato , no habia probado con MSHFlexGrid

Hice las prueba

La cantidad de Registros es de 151595

La carga del ListView tuvo una demora de 45 Segundos
Mientras que la Carga del MsHFlexGrid solo 6 Segundos

lo que estoy investigando ahora es como darle un formato mas agradable,

muchas gracias por todo

Diego
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