PDA

Ver la Versión Completa : dar rapidez a una base de datops access


joanajj
19-07-2005, 13:42:30
Buenos días, tengo una base de datos access con unos 4000 registros y delphi 7 y cada vez la noto mas lenta , sobre todo a la hora de localizar un registro. Hay alguna solución para hacerla más rápida, y para agilizar la localización de registros que puedo hacer, de momento localizo los registros mediante el LOCATE.

Saludos y gracias...

Neftali [Germán.Estévez]
19-07-2005, 13:55:55
¿Tienes indices definidos por los campos de búsqueda? 4000 registros no son muchos y debería ir rápido.
=> Crear índices por los campos de búsqueda.
=>Utilizar SQL puede ser una prueba alternativa a ver qué tal.
=>Si buscas un sólo registro utiliza la cláusula TOP.
=>Evita si puedes utilizar operador LIKE (como).

marcoszorrilla
19-07-2005, 14:29:50
También conviene que la compactes periódicamente.

Un Saludo.

joanajj
20-07-2005, 20:44:55
Gracias por la respuesta. La base si tiene índices, y uso Ado, aunque voy a probar a ver que tal va SQL. El problema es que al usar LOCATE tarda uno o dos segundos en encontar el registro que busco.


Gracias.

Neftali [Germán.Estévez]
21-07-2005, 10:02:27
Revisa el tipo de cursores que están utilizando en ADO; Depende de cuales estén utilizando puedes estar cargando todos los datos en memoria para luego hacer un LOCATE. Eso sería una explicación para los 2 segundos.

joanajj
21-07-2005, 11:45:41
Buenos días, se que hay un cursor en ado que apunta a la BD, pero no tengo muy claro como trabajan, podrías darme un poco de información o decirme donde buscar, y ¿cual sería el cursor apropiado.???



Saludos...

Neftali [Germán.Estévez]
21-07-2005, 12:30:00
Creo recordar que es la propiedad CursorType; Debes modificarla tanto en ADOConnection, como en los ADOTable/ADOQuery que tengas conectados. Usa clServer y clClient; Haz las pruebas con ambos.