PDA

Ver la Versión Completa : necesito sugerencias


felixgo
12-03-2007, 18:51:16
Hola tengo una aplicación que trabaja con Delphi 5 y BDE, y como base de datos estoy utilizando firebird 2.0.
Cuando la instalo en un cliente que con 50 puestos la aplicaciín se ralentiza bastante. La arquitectura es cliente/servidor con todas las reglas de negocio metidas en la base de datos.
El servidor es un xeon con doble procesador y windoes 2000, pero ahora sólo tiene conectado un procesador porque he observado que en modo superserver va mejor que clasic así que le quitamos un procesador.
Estamos baranjando varias alternativas:
montar interbase 2007 que soportra 2 procesadores o montar linux en modo clasic.
Se acepta cuelquier idea o comentario

Gracias

ArdiIIa
12-03-2007, 19:01:06
Hola tengo una aplicación que trabaja con Delphi 5 y BDE, y como base de datos estoy utilizando firebird 2.0.

Cuando la instalo en un cliente que con 50 puestos la aplicaciín se ralentiza bastante.

No entiendo muy bien lo de utilizar el BDE con Firebird y consecuentemente, entiendo que la aplicación se ralentice...


En pruebas realizadas (http://www.clubdelphi.com/foros/showthread.php?t=13209) por algunos usuarios de este foro, bajo linux se consigue un mejor acceso con incremento de velocidad..

felixgo
12-03-2007, 19:11:50
ya, es una herencia de años
que componentes me recomiendas con delphi 5?

Neftali [Germán.Estévez]
12-03-2007, 19:33:45
Hola tengo una aplicación que trabaja con Delphi 5 y BDE, y como base de datos estoy utilizando firebird 2.0.
Cuando la instalo en un cliente que con 50 puestos la aplicaciín se ralentiza bastante.

Primero me sorprende la configuración: BDE y FireBird 2.0.
Creo que deberías "saltarte" el BDE y acceder utilizando componentes Nativos. Los que ya te han dicho o algunos otros.

Segundo, cuando dices que la aplicación se ralentiza, deberías explicar en qué puntos se ralentiza, porque sin más información es difícil.

En general unas directrices generales serían las siguientes:
* Minimiza consultas que traigan muchos datos a Local.
* Utiliza filtros de forma sistemática.
* Utiliza el comando TOP cuando sea posible.
* Obligatorias claves primárias, claves foráneas e índices por campos por los que se hagan búsquedas.
* Si utilizas controles de tipo DBGrid, asegúrate de usar cursores de tipo Server-Side para no traer ingentes cantidades de datos a local.
* Olvida las búsqedas incrementales. No son buena idea. :D
* Intenta realizar búsquedas por los campos claves o con índices únicos si es posible.
* Claves primarias de un campo, mejor que las compuestas; Claves primarias de tipo numérico mejor que las alfanuméricas.
* Evita filtros del tipo "LIKE ..." si es posible.
* Utiliza STORED y TRIGGER siempre que sea posible; Mejora la velocidad y eficiencia frente a la lógica de negocio en la aplicación, aunque seguramente incrementa la dificultad; Puedes reservarlo para procesos que te resulten un "cuello de botella".
* ...

Como ya te digo, esto son "ideas" generales. Tampoco son aplicables siempre y en todos los casos. Hay que "estudiar" qué es lo que está ralentizando y evaluar esa parte.

Un saludo.

felixgo
12-03-2007, 19:39:20
Gracias,

que componentes me recomiendas utilizo D5 podría cambiar a D7 si no hubiera más remedio aunque la aplicación es bastante grande. Intentaria cambiarla por partes, ya que todo lo otro lo hago asi, quiza demasido, ya que tengo muchos procedimientos almacenados, quiza demasido y se sature el servidor

ArdiIIa
12-03-2007, 19:43:13
Gracias,
que componentes me recomiendas utilizo D5 podría cambiar a D7 si no hubiera más remedio aunque la aplicación es bastante grande.
Yo utilizo D7 con IBX

Casimiro Notevi
12-03-2007, 21:59:06
Lo más cómodo que puedes probar es usar los componentes IBX que vienen con tu delphi 5.
El otro paso sería cambiar a MDO (http://www.mdolib.com/index.en.html), que son OpenSource y totalmente compatibles con IBX (es un descendiente del original FIB, que es padre de ambos). El problema de IBX es que no está actualizado a las últimas características de Firebird 2.
Personalmente me gusta FIBplus (http://www.devrace.com/en/fibplus/), pero tendrás que pagar un poquito por ellos, aunque con MDO estarás bien servido.
Por supuesto, Firebird es mejor que su ancestro Interbase, además es más rápido y, muy importante, es OpenSource.
Para terminar pondría un Gnu/Linux Suse, Ubuntu, RedHat, Debian o 'LaQueMásTeGuste' en el servidor, con Firebird ClassicServer para aprovechar los 2 procesadores.
Finalmente haría una buena depuración y afinado del código, tal y como te han explicado los compañeros de clubdelphi, y seguro, seguro que verás tu sistema "volar"... que 50 puestos no son nada :)

Suerte.

P.d.: Cambiar a Delphi 7 no reporta ninguna mejora para tu problema.

axelbb
13-03-2007, 15:06:40
El otro paso sería cambiar a MDO (http://www.mdolib.com/index.en.html), que son OpenSource y totalmente compatibles con IBX (es un descendiente del original FIB, que es padre de ambos).

Hacé la prueba con los MDO, son muy buenos, tienen código fuente y son gratis, se los recomiendo a todos quienes preguntan. No te cuesta nada probarlos. Los uso desde hace dos años en varios proyectos, uno de los cuales se parece al tuyo en demanda, y no existen problemas, el sistema vuela, y eso que maneja tablas con documentos de todo tipo (Word, Excel, PDF, JPG...) en campos blob (cosa "non sancta" :p).

Antes de mudarte de servidor, con todos los trastornos que acarrea, hacé la prueba cambiando el método de acceso, seguramente ya notarás la mejora, porque yo lo uso en condiciones similares y está perfecto. Obvio, si el servidor puede ser Linux... ¡Qué mejor!:D

Seguí atentamente los datos que te dieron (especialmente el análisis de los índices y la selección del paquete de datos que solicita el cliente), vas a solucionarlo y quedarás tan fascinado como nosotros con el poder de la "pequeña maravilla" Firebird. ¡No tiene desperdicio! :)

Suerte, vas por buen camino.