Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

problemas de rendimiento en acceso a Oracle

Estas en el tema de problemas de rendimiento en acceso a Oracle en el foro de Visual Basic clásico en Foros del Web. El problema que tengo es el siguiente. Quiero utilizar Visual Basic 6.0 para acceder a una base de datos y mostrar los datos en un ...
  #1 (permalink)  
Antiguo 05/09/2009, 05:40
 
Fecha de Ingreso: octubre-2006
Mensajes: 53
Antigüedad: 17 años, 6 meses
Puntos: 0
problemas de rendimiento en acceso a Oracle

El problema que tengo es el siguiente.

Quiero utilizar Visual Basic 6.0 para acceder a una base de datos y mostrar los datos en un MSHFlexGrid.

Para ello a grandes rasgos lo que hago es:

declarar la conexión
declarar el recorset
crar la conexion
abrir la conexión
crear el recordset
Asignar al MSHFlexGrid como fuente de datos el recordset.
cerrar el recordset

este recordset lo uso para obtener datos de varias consultas, para ahorrar memoria, por lo que lo cierro y abro cuando lo necesito.

La conexión la dejo abierta hasta que no la última vez que utilizo el recordset.

Pero por alguna razón, tarda muho en llenar los datos en el MSHFlexGrid, y no son más de 20 registros. He probado la consulta utilizada en el recorset en un analizador de consultas, para ver cuánto tiempo tarda y es instantánea prácticamente, y si pongo un punto de interrupción en el código y la ejecuto paso a paso, el donde hay un ligero lapso de tiempo no es en la creación del recordset, sino en el siguiente paso que es el llenado del grid.

¿Mi pregunta es, si utilizo un ADODC mejoraría el rendimiento?. ¿podría mejorar si el recordset le ocnfiguro para que tenga un cacheSize=40 por ejemplo?.

También es cierto que no utilizo un command, en el que se puede indicar de forma explícita el tipo de comando para ganar rendimiento indicando que es una sentencia SQL. Ahora lo que hago es usar el método Open del recordset e indicar la sentencia SQL. ¿En el recordset se entiendo que siempre es una sentencia SQL y por tanto no hace falta indicar nada o sería mejor utilizar el comando indicando el tipo?.

Finalmente quería comentar que como cadena de conexión estoy utilizando como proveedor el MSDASQL.1, siendo una conexión a Oracle 9.2. Sin embargo esa cadena la obtuve creando ADO Data Controler para utilizar su asistente para concer la cadena de conexión, y después lo borré.

En genereal queraía saber qué formas de ganar rendimiento serían posibiles.




Muchas gracias.
Daimroc.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:23.