PDA

Ver la Versión Completa : Problemas con locate


Ivanzinho
03-05-2005, 17:45:57
Hola a todos:

Estos días he estado mirando numerosos hilos en los que se tratan problemas relacionados con la lentitud del metodo LOCATE con componentes IBTable, pero hay muchas cosas que no me quedaron muy claras, y agradeceria vuestra ayuda.

En algunos hilos se comenta que si la tabla está indexada y si se busca por ese índice el tiempo de la búsqueda debería ser el mismo que para el componete TTable con paradox. Mientras que en otros se dice que el tiempo de búsqueda es el mismo para la búsqueda por un índice que por otro campo. En mi caso el tiempo de búsqueda sólo depende de la posición del registro, independientemente de que la tabla esté indexada o no.
Trabajo con un dbgrid en el que se muestran sobre 10000 registros. Si hago un last o si arrastro el scroll hasta el final solo tarda la primera vez, después va rápido, sin embargo si busco el último elemento de la tabla (mediante un locate), lleva el mismo tiempo para la primera que para el resto de las veces (10-12 seg aprox., con paradox y Ttable >0.5 seg).
Utilice un componente IBSQLMonitor para monitorizar las consultas a B.D. y comprobe que si me muevo secuencialmente por los registros, cada vez que se visualiza un registro nuevo, si este no había sido visualizado con anterioridad, se hace un fetch, en caso contrario no se hace nada, pero si hago un locate hace un fetch todas las veces.
Quisiera saber si álguien me podría explicar a que se debe este funcionamiento, si me podrían dar alguna solución que no me causa mucho problema para la migración de páradox a Firebird 1.5.

¿Podría ser una solución la utilizacion de componentes BDE?

Gracias por vuestra ayuda.