Inicio > Visual Basic > barquisimeto > saber cuantos registros tiene una tabla

saber cuantos registros tiene una tabla

Experto:
Usuario:
Fecha: 11/08/2004
Valoración: (5,00 sobre 5) Categoría: Visual Basic
07/08/2004
fredy, usuario preguntando en Visual Basic
Usuario
Saludos..
Para saber cuantos registros hay en un tabla realizo lo sgt:

Private RgHis1 As New ADODB.Recordset
Dim Val1 as Long

Private Sub Form_Load()

RgHis1.Open "hiscli",BD,
adOpenForwardOnly, adLockReadOnly
Val1 = RgHis1.RecordCount
Set RgHis1 = Nothing
End Sub

pero como la tabla posee mas de 190 000
registros, y sigue aumentando diariamente, demora unos 20 segundos aproximadamente.
Existe alguna otra forma de saber cuantos registros tiene una tabla.
Muchas gracias
Atentamente
Fredy Mendoza
10/08/2004
fredy, experto respondiendo en Visual Basic
Experto
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
11/08/2004
fredy, usuario preguntando en Visual Basic
Usuario
Muchas gracias. Sobre todo por la buena explicacion. TE MERECES 5 ESTRELLAS
Enlaces patrocinados