Velocidad en Interbase
Buenas tardes tengan todos.
Estoy utilizando Delphi 6 con componente DBExpress, con base de datos de interbase con Firebird.
He estado desarrollando desde hace un par de años una aplicacion pero ahora que ya estoy prrobando la aplicación con información completa, me topo con la dichosa palaba VELOCIDAD, tengo una DB con 70 tablas y realizo la conexion a la DB y la cierro cada que se abre un formulario, esto es algo que no puedo cambiar de la aplicación y estoy consiente de que es uno de tantos problemas que tengo de velocidad.
Ademas al abrir una tabla con 5000 registros (Catalogo de Productos) y otra con 45000 (catalogo de clientes), esto sin tomar en cuenta que la de Facturas es mayor(pero aqui solo obtengo los datos del mes y no son tanto registros), Pero el detalle es el siguiente, tengo una aplicacion que utiliza DBFs y es mucho más rápida, estoy consiente de que la tecnologia de un DBF no es igual a una de Interbase, pero trabajando local, creo que debe ser el desempeño muy parecido.
Pero bueno despues de tantas cosas mi duda es, Existee alguna forma de hacer que automaticamente la aplicación obtenga los primero de una tabla por ejemplo los primeros 100, y al llegar a los 100, automaticamente obtenga la informacion de la tabla los siguientes 100.
Cuando se abre un formulario con estos datos, trabajando local, tarda 30 segundo Interbase, y en un DBFs con Foxpro se tarda, algo como 7 o 10 segundos.
En alguna ocasion vi algo, como hacer un procedimiento almacenado que solo traiga 100 registros, de la consulta o almenos eso se me ocurre para mejorar velocidad.
espero me entidan lo que quiero, no puedo quitar los clientes o los productos ya que son necesario para la interfaz de la aplicación, al facturar ver a quien se le facturara o al vender para saber que se va a vender, una ves en SQL vi que habia una forma de configurar en el cliente una especie de cache que almacenaba los datos de la DB y cuando abri una o dos veces la misma ventana la velocidad en la primera ves era lenta pero en la segunda era muy aceptable, no se si posible en Firebird hacer algo parecido.
Por su atención gracias y espero alguien sepa que hacer para mejor la velocidad.
|