Delphi - Tardanza con FIREBIRD 1.5.2

 
Vista:

Tardanza con FIREBIRD 1.5.2

Publicado por EL PELOTAS (1 intervención) el 01/11/2007 19:09:54
Buenos dias, estimados foristas.
A continuación les relato mi problema con firebird y/o con mi servidor (windows 2000, 1 gb RAM)...si alguien tiene alguna sugerencia se los agredeceré infinitamente.

- el servidor da otros servicios como exchange 10 usuarios, almacenamiento de archivos (excell, word etc.), pagina web (muy ligera), contabilidad 2 usuarios (usa firebird tambien).

Mi sistema de punto de venta esta hecho en delphi 7 sobre firebird 1.5.2 para un comercio (3 tiendas)

Resulta que tengo en mi negocio un programa de cliente frecuente, damos dinero electronico y para eso tengo una tabla donde guardo los datos generales del cliente. la tabla tiene 106,000 registros.
Cada vez que viene un cliente si trae su tarjeta pues todo bien, el sistema encuentra de inmediato su registro y no pasa nada, pero cuando no trae su tarjeta busco su nombre de la forma siguiente:

select * from cliente where paterno containing :v0 and materno containing :v1 and nombres containing :v2

la tabla esta indexada por separado paterno / materno / nombres y juntos tambien paterno,materno,nombres (entre otros indices para otros campos).

Al empezar el dia la primer busqueda por nombre tarda más de dos minutos y las siguientes (diferentes clientes) tardan solo 2 segundos.
Cuando no hay movimiento por media hora o mas y hacemos otra busqueda, otra vez la primera tarda mucho y las siguientes solo algunos segundos.
Tambien he notado que cuando uso un reporte que requiera sumar muchos registros y de varias tablas, esto provoca la tardanza tambien, aun y cuando yo ya haya visto el reporte y cerrado la aplicación la susodicha primer busqueda tarda varios minutos.

¿ quien sabe como pudiera evitar que la primer busqueda tarde tanto ?

- mi proveedor dice que cambie el servidor, porque ya tiene 4 años y desde luego mejoraría mucho la velocidad (pero me cuesta mucho $$$, snif!)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Tardanza con FIREBIRD 1.5.2

Publicado por Delfino (1216 intervenciones) el 04/11/2007 23:17:06
Eso no debe pasar, sospecho q utilizas algun metodo de Delphi (locate, lookup etc.)para buscar lo q trae todos los datos al cliente, de alli q en las siguientes veces no tarda,
q componente usas para buscar?
has pensando en utilizar una stored proc?
da mas detalles asi quedara mas claro..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tardanza con FIREBIRD 1.5.2

Publicado por EL PELOTAS (2 intervenciones) el 05/11/2007 17:19:33
Estimado delfino:
Muchas gracias por contestar.
Estoy utilizando el objeto IBQUERY de INTERBASE.

Select * from clientes
where
paterno containing :v0 and
materno containing :v1 and
nombres containing :v2

La tabla anda sobre los 100,000 registros
Como te digo, lo curioso es que la primer busqueda tarda entre 2 y 4 minutos y las subsecuentes solo 1 ó 2 SEGUNDOS.

Es como si tuviera que calentar motores.

Lo que estoy haciendo en las mañanas o despues de que se usa poco:
ejecuto el quiery nada mas para calentar motores.

Supongo que la instruccion CONTAINING debe darle trabajo a FIREBIRD, pero eso me mejora mucho las posibilidades éxito en la busqueda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar