FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Aplicacion Leeeeenta ...
desde hace ya algun tiempo tengo una aplicacion en Delphi que conecta a una B.D MsSql2000 pues bien todo funcionaba bien hasta hace poco en los que los tiempos de carga son infinitamente largos (tiene un ventana Splash) ahora bien que pasara... esa es mi pregunta
Gracias .... Asi mismo pregunto si existe alguna herramienta que permita monitorear la respuesta de un servidor de datos a fin de establecer que esta fallando ..... |
#2
|
||||
|
||||
No sabemos qué puedes hacer si no sabemos lo que haces. Dices que es lenta al cargar, ¿qué cosas realiza la apliación al cargarse? ¿Qué objetos/componentes utilizas? ¿Podrías ponernos algo de código? ...
Salu2. |
#3
|
||||
|
||||
Piensa en estos puntos para determinar tu problema:
Haces una conección directa al servidor MS Server (no por medio de DBE o ODBC).
Si ocurre en todos los clientes (inclusive con S.O. recién instalados) puede ser que el problema esté del lado del servidor. A forma de relato, todavía estoy desarrollando una aplicación para trabajar directamente con servidor firebird, pero he notado que cuando la memoría RAM libre del servidor baja a menos de 200, mis aplicaciones clientes se vuelven leeentas, inclusive sólo con un cliente conectado. Revisa bien, para determinar en donde se encuentra el problema, luego de encontrarlo sería momento de buscar una solución. Saludos. |
#4
|
|||
|
|||
Respuesta
Hola amigos gracias por sus respuestas, les respondo a continuacion ....
Hago conexion por medio de Ole por medio de los componentes de corelab ojo es lo mismo que con ado, yo creo que el problema no esta en la aplicacion porque como dije, ella funcionaba bien pero la describo de manera somera a continuacion... es una aplicacion normalita Cliente servidor a dos capas con + o - 15 tables y otro tanto en consultas actualizables(son necesarias) en el arranque pues accede a estas y luego carga en memoria algo asi como 10 forms, en su mayoria se encarga de hacer consultas a la BD y generar reportes en crystal, como dije una aplicacion normalita yo creo que el problema esta en el servidor y o en la red, el problema es que temo que este caido un servicio o algo , por eso pregunto de que depende a nivel de servicios una aplicacion asi, Odbc lo uso solo para algunos reportes en crystal que se ejecutan en la aplicacion que mas debo revisar .... Gracias por sus respuestas |
#5
|
|||
|
|||
Casi lo mismo
con D7 y MSSQL Server 7
tuve el mismo problema. probé todo lo que se me venga a la cabeza y luego.... nada, nada se ha solucionado, aunque un buen dia se me ocurrió terminar un proceso (o sea, uno de los procesos...) llamado svchost y el problema se fue, así como mis temas de xp y demás artilugios gráficos que sólo sirven para quemar con mayor velocidad las pestañas, ah! otra cosa, este pc (que lo utilizo como server de internet en mi lan) quedaba con conexión pero las demás se perdían, los detalles gráficos volvían al cabo de tres minutos, pero la conexión, no. No te digo que sea una solución, mucho menos algo saludable, pero me saca de apuros cuando el cliente está al lado mío, haciendo comentarios sobre la velocidad con la que trabaja el programa. Si quieres más detalles, te los contaré.... |
#6
|
|||
|
|||
Otra caracteristica de la Falla
Hola amigos
pues otra cosa la lentitud de la aplicacion es solo en la carga despues la cosa mejora notablemente yo diria que esta a un 90 % de su velocidad normal .... esto con que tendra que ver ... Gracias por sus respuestas .... |
#7
|
||||
|
||||
Deberías explicar con detalle qué cosas estás haciendo en esa carga y tal vez colocar algo de código, de otra forma es difícil adivinar qué pasa...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
|||
|
|||
Pues como ya dije....
Hola neftali ....
durante la carga de la aplicacion se crean los distintos formularios asi como el modulo de datos (este va de primero) y dentro de el hay pues tablas y consultas (como 15 o menos de cada uno) aca va el codigo del dpr
y durante la carga del primer form (modulo de datos)
este codigo como ven se ejecuta durante el create del modulo de datos . el que sigue es al final (aca no es el problema porque la aplicacion si que cierra )
pues este es el codigo principal yo creo que la cosa esta en el modulo de datos ya que se crea primero alli durante la carga de la conexion y tablas lo que no se es identificar que elemento externo a puede estar afectando .. por eso pregunto de que servicio depende una aplicacion como esta y como detectar si es el servidor de Bd o la red la que esta interfiriendo .... GRacias .... |
#9
|
||||
|
||||
Podrías realizar el debug paso a paso y ver en donde está la tardanza.
En mi opinión creo que puede ser al crear el modulo de datos y la razón por la que antes no tuvieses problema y ahora sí puede ser de la cantidad de datos almacenado en la Base de Datos. Veo que al crear el módulo de datos realizas el Open de varias tablas, no se si tienes un filtro o no, pero ten en cuenta que existen componentes que al realizar el Open traen todos los datos de la tabla del servidor, otros solo realizan el fetch de los registros necesarios y van realizando fecths sucesivos según se vaya necesitando. No se cuál es tu caso, esto es simplemente un comentario para que lo tengas en cuenta, ya que si los componentes que usas traen todos los datos en el open el problema de la lentitud puede ser el aumento de datos en la B.D. Tampoco sé si realmente necesitas abrir todas las tablas, procura realizar la petición de datos exclusivamente cuando sea necesario. Otra cosa, ¿necesitas crear todos los formularios al iniciar la aplicación?, yo te recomendaría crear los necesarios (15 me parecen excesivos) e ir creando el resto segun se solicite. Realmente no te puedo decir cuál es tu problema, pero pueden ir los tiros por ahí. Prueba lo del debug, así sabrás en que punto se ralentiza. Un saúdo.
__________________
Si no lees esto no vivirás tranquilo Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao) |
#10
|
||||
|
||||
Cita:
Hay varias cosas que me llaman la atención; Yo te las comento y luego tú verás si está dentro de tus posibilidades modificarlas o no. (1) Creas todos los formularios al iniciar la aplicación, cosa que no es necesaria. Crea los formularios cuando los vayas a visualizar y destruyelos al ocultarlos. Supongo que al iniciar no necesitas tenerlos todos visibles. (2) Algo similar pasa con las tablas y consultas. Veo que abres todas al iniciar. Tampoco es necesario si no las vas a utilizar todas en ese momento. Abre cada una en el momento en que la necesites. Incluso en una de ellas haces el Last, con lo que obligas a recorerla toda. No digo que no debas hacerlo, lo que no se es si es necesario que lo hagas todo en ese punto (al iniciar). (3) El Sleep(10) es un retardo innecesario que estás introduciendo. (4) Por último haces un recorrido utilizando ComponentCount; Este método es muy lento. Se puede cambiar y utlkizar un TObjectList para contener los TDataset y hacer el recorrido sobre la lista. (*NOTA*) Son algunas cosas, lo que sí haría yo es intentar añadir a un Log marcas de tiempo de lo que tarda cada operación. Para saber dónde estás perdiendo tiempo. (*NOTA*) Por ejemplo en el punto (4) tal vez no se esté perdiendo nada de tiempo y al hacer el cambio no ganes nada (y pierdas tiempo de programación). El fácil poner un Memo oculto y entre las líneas de tu código añadir sentencias como esta:
Cuando la carga esté completa, lo grabas a disco utilizando:
Con eso tendrás marcas de tiempo aproximadas de lo que está tardando cada parte y así podrás afinar la solución... Un saludo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#11
|
||||
|
||||
Hola...
Leido lo expuesto con anterioridad, se me ocurre que si trabajas con SQL, quizás sea la forma que se instalo SQL y te dejaron la base de datos de un tamaño limitado.... A un colega le paso que una empresa que vende sistemas ERP (Softland)... le instalaron todo, y que llegado un momento todo se volvio super lento y hasta dejar de trabajar.. el problema fue el limite fijado a la base de datos.... la solución realizar un aumento del tamaño de la base de datos... y/o realizar la configuración para que se autoincremente la base de datos (Tambien se debe configurar el tamaño del Log... ).... Quizás este no sea tu caso, pero nunca esta demás mencionarlo... Salu2
__________________
BlueSteel |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Aplicación de Servicio+Aplicación Normal +Socket | jake | API de Windows | 5 | 21-06-2007 18:53:19 |
Aplicación Web vs aplicación Delphi | epuigdef | Internet | 26 | 08-05-2007 10:47:12 |
Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7 | Gaby123 | API de Windows | 5 | 04-01-2007 22:44:51 |
Diferencia entre aplicacion Clx y aplicación normal??? | JorgeBec | Varios | 1 | 27-10-2004 17:30:49 |
aplicacion vertical? aplicacion horizontal? | maruenda | Varios | 3 | 28-02-2004 23:23:20 |
|