Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-08-2005
amedina amedina is offline
Registrado
 
Registrado: ago 2005
Posts: 9
Poder: 0
amedina Va por buen camino
Lentitud conexión SQL

Agradecería una recomendación con la siguiente situación:

Motor dB: SQL Server.
Tool: Delphi 6
Tamaño Exe: 21 Mb
Servidor SQL: 1 Gb RAM, Procesador Xeon
PC Cliente: 512 Mb RAM, Procesador Pentium IV de 3.0 Gz

El aplicativo tiene un DataModule con 115 DataSets (no lo puedo disminuir). Este DataModule es utilizado ("Use") por todos los formularios del aplicativo sin utilizar DataSets internos en los mismos.
El aplicativo a partir de su arranque (visualización formulario principal en pantalla) tiene un rendimiento normal. La demora se presenta para el arranque del mismo (visualización formulario principal en pantalla), casi hasta 3 minutos.

Agradezco enormemente cualquier recomendación que me permita reducir esta demora.
Responder Con Cita
  #2  
Antiguo 04-08-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿No estrás abriendo todos los DataSet's al empezar no?
Si es así malo por dos cosas:
(1) La primera es clara; El tiempo;
(2) La segunda es que estás abriendo Tablas sin necesidad, por lo tanto tienes muchos cursores abiertos.

La solución más fácil es que abras cada DataSet y lo cierres cuando utilices ese formulario. La entrada será mucho más rápida y en cada momento sólo tendrás abiertos los DataSets correspondientes a los formularios abiertos.
__________________
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.
Responder Con Cita
  #3  
Antiguo 04-08-2005
amedina amedina is offline
Registrado
 
Registrado: ago 2005
Posts: 9
Poder: 0
amedina Va por buen camino
Gracias Neftalí por tu tiempo.

Los DataSet´s están incluídos en un solo DataModule, y en la sentencia USES del formulario coloco el DataModule mencionado. De tal manera no entiendo claramente si los estoy abriendo al tiempo, ya que no le estoy dando el comando OPEN. El formulario principal (Main Form) con el que abre el aplicativo tiene el USES con el formulario mencionado, y demora 3 minutos en aparecer en pantalla. Qué estaré haciendo mal, o qué instrucción me hace falta incluir ?
De nuevo muchas gracias.
Responder Con Cita
  #4  
Antiguo 04-08-2005
amedina amedina is offline
Registrado
 
Registrado: ago 2005
Posts: 9
Poder: 0
amedina Va por buen camino
... y en el momento que abro el MAIN, aún no he abierto el formulario que llama el DataModule.
Responder Con Cita
  #5  
Antiguo 04-08-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Pero en diseño los tienes activados?

Es sencillo, si al acceder a los formularios no haces el Open es que ya están abiertos.
__________________
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.
Responder Con Cita
  #6  
Antiguo 04-08-2005
amedina amedina is offline
Registrado
 
Registrado: ago 2005
Posts: 9
Poder: 0
amedina Va por buen camino
Bastaría entonces con darles el OPEN en los formularios que los utilizan ?
Creo que mi dificultad entonces se solucionaría con la respuesta a esta pregunta: Cómo hago para empezar con los DataSet´s cerrados ?

Gracias de nuevo.
Responder Con Cita
  #7  
Antiguo 04-08-2005
amedina amedina is offline
Registrado
 
Registrado: ago 2005
Posts: 9
Poder: 0
amedina Va por buen camino
... con el ACTIVE ?
Responder Con Cita
  #8  
Antiguo 04-08-2005
Nelson Polanco Nelson Polanco is offline
Miembro
 
Registrado: abr 2005
Ubicación: Provincia Espaillat, Rep. Dom.
Posts: 15
Poder: 0
Nelson Polanco Va por buen camino
Saludos.
Al respecto tambien les recuerdo que puede ser porque se estan creando muchos formularios al iniciar la aplicacion, de ser esto entonces avisanos.
Si el caso es porque los Dataset estan abiertos entonces te recomiendo que los cierres y los abres en el evento OnActivate de cada formulario segun se necesite abrir y al momento de cerrar el formulario verificas si es necesario cerrar algunos.

Suerte.
Responder Con Cita
  #9  
Antiguo 04-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Con 115 Datasets, mas vale que te organices un poco. Hazte un esquema de qué datasets usas en cada ventana, y como es normal, habrá datasets que lo uses en varias ventanas, si al cerrar una ventana cierras un Dataset comun a otra ventana, ésta última se te quejará!!!

En este caso, tendrás que crearte una lista con todos los datasets que tengas, y un contador para cada Dataset, de tal forma que :
- Al abrir una ventana, aumentes el contador:
- Si el contador valía 0 y se ha incrementado, abres el Dataset.
- Si el contador es >0, incrementas el contador y no haces nada más.
- Al cerrar una ventana, decrementas el contador:
- Si el contador vale cero despues de decrementar, cierras el dataset.
- Si el contador es mayor que cero, solo decrementas el contador.

Con tantos Datasets es demasiado laborioso enumerarlos, así que tendrás que recorrer todos los componentes TTable, Tquery, etc, y metiendo una referencia en una tabla (por ejemplo) para despues poder abrirlos y cerrarlos comodamente.

Por cierto es mejor que abras los Datasets en el evento OnCreate o en el OnShow del form, ya que el Activate puede ser demasiado repetitivo.

En respuesta a tu pregunta, Si, basta con usar Dataset.Open y Dataset.Close, pero despues de leer este mensaje, habrás comprendido que puede ser algo "más complejo"

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:10:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi