|
Hola Fredy,
La velocidad de respuesta en una consulta está determinada por varios factores como: la velocidad de procesamiento del ordenador donde está la base de datos, la velocidad y tráfico de red en caso de que estes accesando a la base de datos de manera remota, el tamaño de la base de datos, el tamaño de la tabla y la cantidad de columnas que esta tenga, etc. Además hay que agregar que al utilizar el control ADO puede afectar a la velocidad de respuesta.
Yo te propongo que hagas la siguiente prueba.
Desde tu base de datos (yo usé MS ACCESS) te creas una consulta que estraiga el número de registros de la tabla. Ej:
"SELECT COUNT(IdCliente) AS NumeroDeRegistros FROM CLIENTES".
Por otra parte te creas un procedimiento almacenado que te permita ver exactamente el tiempo que la base de datos tarda en ejecutar la consulta.
Ej.:
inicio = time();
ejecutarConsulta();
fin = time();
Comparas inicio con fin y sabes el tiempo que se ha tardado la base de datos en ejecutar la consulta, lo cual te indica el tiempo mínimo que obtendrás desde Visual.
Una vez hecha la prueba desde tu código de Visual realizas la misma operación pero en vez de abrir una tabla "hiscli" abres la consulta que te has creado.
La diferencia está en que cuando abres una tabla realizas una consulta que te devuelve todos los campos y registros de la tabla y luego haces una consulta para saber el número de registro ("RgHis1.RecordCount"), lo cual es muy distinto a devolver solo un campo en el caso de la consulta que lee el número de registros.
OJO: Cuando abras la consulta no es necesario que hagas recordcount sino que leas el único registro que devuelve (Te lo comento porque te dije que hiceras lo mismo y no es exactamente lo mismo).
Un saludo,
Alonso
|