Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Conexión en cliente muy lenta (https://www.clubdelphi.com/foros/showthread.php?t=96218)

pgranados 04-05-2023 00:18:02

Conexión en cliente muy lenta
 
Buen día compañeros, tengo una aplicación la cual puede estar en varios equipos a la vez, en el servidor no tengo ningún problema, la base de datos y la aplicación son muy rápidas pero cuando utilizo un equipo como terminal es donde se desbarata todo, la aplicación se pone lenta cuando se tienen que hacer operaciones en la base de datos, las propiedades que utilizo para la conexión son las siguientes:

Código Delphi [-]
   DataModulo.FD_Driver.VendorLib:= psRutaRaizServer+'fbclient.dll';
   DataModulo.FD_Driver.embedded:= false;

   if psVersionPlusoRed = 'RED'  then // Si es red, el protocolo de conexión es NETBEUI
   begin
    DataModulo.FDC_Catalogos.Params.Values['Server'] := psNombreSever;
    DataModulo.FDC_Catalogos.Params.Values['Protocol']:= 'NetBEUI';
   end
   else // Si es plus, el servidor es local
    DataModulo.FDC_Catalogos.Params.Values['Protocol']:= 'Local';

   DataModulo.FDC_Catalogos.Params.Values['UserName']:= 'SYSDBA';
   DataModulo.FDC_Catalogos.Params.Values['Password']:= 'masterkey';
   DataModulo.FDC_Catalogos.Params.Values['Database'] := psRutaBaseDatos+'database.FDB';
   DataModulo.FDC_Catalogos.Connected:=true;


La versión de firebird es 2.5.9 y el equipo que funge como servidor tiene los mismos componentes que la terminal:
Intel i5 11va gen
16gb ram
nvme 256gb
100 mbps de conexión
ambos equipos por cable de red cat6

¿Alguna idea de que pueda estar pasando? un proceso que en el servidor toma medio segundo o menos en la terminal toma como 6-8 segundos

Casimiro Notevi 04-05-2023 09:33:27

¿NetBEUI? ¿Por qué?

Neftali [Germán.Estévez] 04-05-2023 10:02:25

Cita:

Empezado por pgranados (Mensaje 551383)
¿Alguna idea de que pueda estar pasando? un proceso que en el servidor toma medio segundo o menos en la terminal toma como 6-8 segundos

¿Son procesos que devuelven muchos resultados?
Si no es así tal vez deberías revisar problemas de red.

pgranados 04-05-2023 13:42:16

Cita:

Empezado por Casimiro Notevi (Mensaje 551386)
¿NetBEUI? ¿Por qué?

Lo se... quise descartar para ver si era el protocolo, cambie a TCP/IP pero la lentitud sigue :eek:

pgranados 04-05-2023 13:47:15

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 551388)
¿Son procesos que devuelven muchos resultados?
Si no es así tal vez deberías revisar problemas de red.

Tarda en cualquier forma de mi aplicación que requiera el uso de base de datos, abriendo un forma con un dbgrid que tiene 50 registros por ejemplo, en el servidor tarda menos de medio segundo pero en la terminal tarda como 4 segundos.

En otra forma donde tengo que "leer un xml" y grabar su información en una tabla en el servidor toma igual, medio segundo aprox por xml pero en una terminal tarda de 6 a 10 segundos :eek::eek:

Ya cambie el protocolo de NetBEUI a TCP/IP para descartar eso, y si mejora le conexion pero no como deberia, en lugar de tardar en este caso 4 segundos: tarda 3 y en lugar de 6 a 10s tarda de 4 a 8s :confused:

manelb 04-05-2023 15:11:41

Esta misma semana tuve yo un problema de rendimiento en una instalación que venía funcionando sin problemas desde hacía tiempo.
De repente empezó a funcionar con una lentitud extrema

Un backup/restore solucionó el tema.

No sé si puede ser el caso, pero por probar que no quede...

Saludos

mamcx 04-05-2023 15:52:38

Es igual de lento si accedes por una herramienta de admin de BD que no sea tuya?

Que va en "nombre del servidor"? Si usas una IP, lo mismo?

Haz ello un diagnostico de red desde el cliente? Como un `trace`?

Neftali [Germán.Estévez] 04-05-2023 17:18:26

¿La conexión la tienes abierta o la abres cada vez?

Abrir la conexión tarda segundos.

pgranados 04-05-2023 20:16:18

Cita:

Empezado por mamcx (Mensaje 551393)
Es igual de lento si accedes por una herramienta de admin de BD que no sea tuya?

Que va en "nombre del servidor"? Si usas una IP, lo mismo?

Haz ello un diagnostico de red desde el cliente? Como un `trace`?

Estoy utilizando NetBEUI, nombre del servidor, como su nombre lo dice, es el nombre del host, ya intente cambiando de protocolo a TCP/IP pero obtengo lo mismo, la mejora es muy mínima

Utilizando ISQL en mi equipo cliente (terminal) no noto lentitud al ejecutar querys

pgranados 04-05-2023 20:20:32

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 551395)
¿La conexión la tienes abierta o la abres cada vez?

Abrir la conexión tarda segundos.

Tengo 3 bases de datos a las que me conecto
1. Generales (Muestra información de usuarios, permisos, etc)
2. Catálogos (Muestra información de catalogos, como por ejemplo: clave de concepto, tipo de unidad, etc, etc)
3. Empresa (Contiene toda la información de la empresa)

Al abrir el programa creo los tres datamodule y despues mi forma principal donde me conecto a la base de generales y catalogos, despues muestro un dbgrid con los usuarios
y al dar clic al usuario me conecto a su base de datos (esto no es tardado)

lo tardado es cuando quiero hacer operaciones en la base de la empresa, simplemente abrir un form que tiene un dbgrid con 50 registros hasta por ejemplo, grabar n cantidad de registros

Utilice en el equipo cliente el ISQL de firebird y no hay lentitud al ejecutar diversos querys

Me parece que es un tema del FireDAC o algo que no estoy configurando o estoy configurando mal

Casimiro Notevi 04-05-2023 21:12:56

Deberías adjuntarnos un proyecto de ejemplo.
Aparte de eso, ¿has dicho 3 bases de datos? habrás querido decir "3 tablas de una base de datos", ¿no?

pgranados 04-05-2023 21:23:25

No, si son tres bases de datos.

No sabría como adjuntar un mini proyecto con esta problema, pues: realmente en el servidor no hay problema de velocidad, solamente existe en la maquina cliente.

El programa tiene dos versiones, una donde se usa localhost(plus) y otra donde se puede usar el programa en múltiples computadoras(red).

Si la versión de sistema es plus no hay problemas de rendimiento en la db.
Si la versión de sistema es red y soy el servidor no hay problemas de rendimiento en la db.
Si la versión de sistema es red y soy cliente (terminal) existen problemas de rendimiento *lentitud* en la db.

En mis datamodule tengo los FDConnection que configuro de la siguiente forma:

Código Delphi [-]
   // configuro driver
   DModuloRaiz.FD_Driver.VendorLib:= psRutaRaizServer+'fbclient.dll';
   DModuloRaiz.FD_Driver.embedded:= false;
   
   if psVersionPlusoRed = 'RED' then // Si es red, el protocolo de conexión es NETBEUI
   begin
    DModuloRaiz.FDC_Raiz.Params.Values['Server'] := psNombreSever;
    DModuloRaiz.FDC_Raiz.Params.Values['Protocol']:= 'NETBEUI';
   end
   else // Si es plus, el servidor es el mismo equipo  (localhost)
    DModuloRaiz.FDC_Raiz.Params.Values['Protocol']:= 'Local';


   DModuloRaiz.FDC_Raiz.Params.Values['UserName']:= 'SYSDBA';
   DModuloRaiz.FDC_Raiz.Params.Values['Password']:= 'masterkey';
   DModuloRaiz.FDC_Raiz.Params.Values['Database'] := psRutaBaseDatos+'database.FDB';
   DModuloRaiz.FDC_Raiz.Connected:=true;

lucho6007 04-05-2023 22:15:30

Hola!
¿Desde una sola terminal funciona lento? En caso que si, verificá la conexión de red de esa terminal, por ejemplo, usando iperf o algún software de testeo de red.

¿Las conexiones a las 3 DBs funciona lento o es sólo a una? Si es sólo a una, lo que te dijeron los colegas te puede servir: regenerar la DB (haciendo FBK y FDB de nuevo).


Estamos atentos a las respuestas!

pgranados 04-05-2023 22:18:01

Cita:

Empezado por lucho6007 (Mensaje 551401)
Hola!
¿Desde una sola terminal funciona lento? En caso que si, verificá la conexión de red de esa terminal, por ejemplo, usando iperf o algún software de testeo de red.

¿Las conexiones a las 3 DBs funciona lento o es sólo a una? Si es sólo a una, lo que te dijeron los colegas te puede servir: regenerar la DB (haciendo FBK y FDB de nuevo).


Estamos atentos a las respuestas!

Las 3 DBs tienen conexión lenta y es en cualquier equipo que funcione como terminal :(

Ya intente lo de regenerar la DB pero no me sirvio

lucho6007 04-05-2023 22:21:28

Hola de nuevo!
Entonces tenés problemas de conexión de red. Verificá con iperf3 por ejemplo, si la velocidad está bien. En redes modernas debería ser de por lo menos entre 700 mbps, y 1 gbps

Casimiro Notevi 05-05-2023 10:01:34

Desde luego que ahí tienes un problema, las conexiones deben ser instantáneas.


La franja horaria es GMT +2. Ahora son las 16:33:42.

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