Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   DataSnap devuelve muy lento consulta a Cliente (https://www.clubdelphi.com/foros/showthread.php?t=90782)

novato_erick 02-09-2016 18:21:24

DataSnap devuelve muy lento consulta a Cliente
 
Hola Chicos como han estado?


Tengo la oportunidad de Crear una aplicación ClienteServidor con un servidor fuera de mi red utilizando DataSnap sin embargo e notado que al realizar las consultas son muy lenta en obtener los registros aunque sea un simple Select y trayendome solamente 200 registros.

ejemplo en el lado del Servidor DataSnap tengo Internet simetrico 7mb de bajada y 4mb de subida.

Alguien sabe si este comportamiento es normal porque eh creado consulta a la misma base de datos por php y veo que es más rápido retornando los registros.

otra cosa si aumento el BufferKBSize de 32 a 128 podria mejorar? o alguien tiene alguna otra idea?

Saludos

novato_erick

CarlosReyesg 03-09-2016 04:29:44

Cita:

Empezado por novato_erick (Mensaje 508410)
Hola Chicos como han estado?


Tengo la oportunidad de Crear una aplicación ClienteServidor con un servidor fuera de mi red utilizando DataSnap sin embargo e notado que al realizar las consultas son muy lenta en obtener los registros aunque sea un simple Select y trayendome solamente 200 registros.

ejemplo en el lado del Servidor DataSnap tengo Internet simetrico 7mb de bajada y 4mb de subida.

Alguien sabe si este comportamiento es normal porque eh creado consulta a la misma base de datos por php y veo que es más rápido retornando los registros.

otra cosa si aumento el BufferKBSize de 32 a 128 podria mejorar? o alguien tiene alguna otra idea?

Saludos

novato_erick

Puedes dar mas detalles.
lo que dices es muy generico
por ejemplo que version de delphi utilizas?
que componentes de base de datos estaas utilizando?
que base de datos utilizas?

las aplicaciones que tenemos en la empresa utilizan Datasnap con FireDac y la base de datos es FireBird
y el servidor esta AWS de Amazon
tememos bastantes registros y usuario tambien son muchos que se conectan hasta el momento no tenemos problemas.

novato_erick 09-09-2016 02:31:21

hola CarlosReyesg:

Gracias por responder y perdona la tardanza por contestar;

No eh usado FireDac con DataSnap estaba utilizando los componente DBExpress y la version de delphi que uso es XE7 Enterprise y Firebird 2.5.

Pero sinceramente esta lento con estos componentes una simple consulta trayendome en el FASTREPORT demora hasta 15 segundo horrible...

Saludos


novato_erick

rastafarey 09-09-2016 14:31:26

lee esto
 
Prueba a leer estos articulos y veras cual es problema. De antemano te digo que hagas lo que hagas no lo vas a solucionar. por que no es problema tuyo, ni error de programcion

Inicial
https://robertocschneiders.wordpress...ability-tests/

Continuacion
https://robertocschneiders.wordpress...-tests-part-2/

Pruebas
http://andremussche.blogspot.com/201...ode-speed.html

CarlosReyesg 09-09-2016 18:13:33

Cita:

Empezado por novato_erick (Mensaje 508624)
hola CarlosReyesg:

Gracias por responder y perdona la tardanza por contestar;

No eh usado FireDac con DataSnap estaba utilizando los componente DBExpress y la version de delphi que uso es XE7 Enterprise y Firebird 2.5.

Pero sinceramente esta lento con estos componentes una simple consulta trayendome en el FASTREPORT demora hasta 15 segundo horrible...

Saludos


novato_erick


hola!
en respecto al tema te comento deberías de investigar los componentes FireDac estos están optimizados y están diseñados para la tecnología de DataSnap por embarcadero(IDERA) esto en el servidor.

el el cliente
te aconsejo que utilices el TClientDataSet o TFDMenTable(con este componente es de escribir un poco mas de código en servidor)
también deberías de investigar como harás la comunicación si via TCP/IP o Http, Https

con la version de Delphi XE7 te comento que si existen muchos problemas con Datasnap entre ellas la que mencionas
te aconsejo que utilices la ultima version que 10.1 berlin en esta embarcadero se esforzó por optimizar y hubo cambio de tecnología en la comunicación y ademas mejoro la forma de transmitir la informacion.

saludos

novato_erick 10-09-2016 00:07:15

Hola Chicos...

Cita:

rastafarey

Prueba a leer estos articulos y veras cual es problema. De antemano te digo que hagas lo que hagas no lo vas a solucionar. por que no es problema tuyo, ni error de programcion

Inicial
https://robertocschneiders.wordpress...ability-tests/

Continuacion
https://robertocschneiders.wordpress...-tests-part-2/

Pruebas
http://andremussche.blogspot.com/201...ode-speed.html
Interesante Cada Artículo Gracias rastafarey....

Retomando a:

Cita:

CarlosReyesg:

hola!
en respecto al tema te comento deberías de investigar los componentes FireDac estos están optimizados y están diseñados para la tecnología de DataSnap por embarcadero(IDERA) esto en el servidor.

el el cliente
te aconsejo que utilices el TClientDataSet o TFDMenTable(con este componente es de escribir un poco mas de código en servidor)
también deberías de investigar como harás la comunicación si via TCP/IP o Http, Https
Ya Utilice el componente FireDac con el componente de conexion FDConnection haciendo prueba con FDQuery y la diferencia en cuanto a obtener los resultados de un simple Query con comunicaciòn TCP/IP no estoy utilizando http, https:
Código SQL [-]
  SELECT 
  COD_BARRA,
  NOMBRE,
  DESCRIPCION,
  STOCK,
  STOCK_MINIMO,
  STOCK_MAXIMO,
  GRAVADO,
  PRECIO_COSTO,
  PRECIO_SINIV,
  COALESCE(STOCK * PRECIO_COSTO, 0) AS PCOSTO,
  COALESCE(STOCK * PRECIO_SINIV, 0)AS PVENTA
FROM 
  ARTICULOS WHERE 
  DESACTIVADO = 'N'AND STOCK < ARTICULOS.STOCK_MINIMO
  ORDER BY STOCK

me parecio igual de lento al traerme solamente 250 registro que posee la tabla con esa condición con 14 segundo utilizando FireDAC... mientras que con DBExpress 15 Segundos.

Cita:

con la version de Delphi XE7 te comento que si existen muchos problemas con Datasnap entre ellas la que mencionas
te aconsejo que utilices la ultima version que 10.1 berlin en esta embarcadero se esforzó por optimizar y hubo cambio de tecnología en la comunicación y ademas mejoro la forma de transmitir la informacion.
Vaya como comente Tengo la Versión XE7 Enterprise y solamente me cuesta $2,432.00 Dolares americanos la actualización.... como comento en el post Roberto Schneider las politicas de Embarcadero de Actualización son asi.


Hoy realizé prueba de 3 usuarios conectados al DataSnapServer y para mi sorpresa se bloqueo. :confused:


como dice el compañero rastafarey:
Cita:

De antemano te digo que hagas lo que hagas no lo vas a solucionar. por que no es problema tuyo, ni error de programcion
Saludos

Investigaré un poco más.

Saludos Chicos...

CarlosReyesg 10-09-2016 02:24:57

Cita:

Empezado por novato_erick (Mensaje 508662)
Hola Chicos...



Interesante Cada Artículo Gracias rastafarey....

Retomando a:



Ya Utilice el componente FireDac con el componente de conexion FDConnection haciendo prueba con FDQuery y la diferencia en cuanto a obtener los resultados de un simple Query con comunicaciòn TCP/IP no estoy utilizando http, https:
Código SQL [-]
  SELECT 
  COD_BARRA,
  NOMBRE,
  DESCRIPCION,
  STOCK,
  STOCK_MINIMO,
  STOCK_MAXIMO,
  GRAVADO,
  PRECIO_COSTO,
  PRECIO_SINIV,
  COALESCE(STOCK * PRECIO_COSTO, 0) AS PCOSTO,
  COALESCE(STOCK * PRECIO_SINIV, 0)AS PVENTA
FROM 
  ARTICULOS WHERE 
  DESACTIVADO = 'N'AND STOCK < ARTICULOS.STOCK_MINIMO
  ORDER BY STOCK

me parecio igual de lento al traerme solamente 250 registro que posee la tabla con esa condición con 14 segundo utilizando FireDAC... mientras que con DBExpress 15 Segundos.



Vaya como comente Tengo la Versión XE7 Enterprise y solamente me cuesta $2,432.00 Dolares americanos la actualización.... como comento en el post Roberto Schneider las politicas de Embarcadero de Actualización son asi.


Hoy realizé prueba de 3 usuarios conectados al DataSnapServer y para mi sorpresa se bloqueo. :confused:



como dice el compañero rastafarey:


Saludos

Investigaré un poco más.

Saludos Chicos...



hola
te comento que existe un update para la version que utilizas


puedes revisar también el Release Note
prueba en descargarlo y has las pruebas.

-como consejo te diré que antes de invertir en una nueva version de algún lenguaje de pago
es siempre aconsejable obtener la version trial para realizar las pruebas necesarias.
y con eso tomas la decisión de invertir o no.

para ayudarte con mayor claridad tendría que ver el código del servidor y cliente.
y realizar la prueba.

mira por que no descargas el ISO en version TRIAL de DELPHI 10.1 berlin y lo instalas en una maquina virtual
y has la prueba.

también te aconsejo que actualices a la nueva version de FireBird 3.0 ya que la version anteriores no eran muy buenas en ambiente de internet.
o fuera de redes locales.

si te parece puedes enviármelo por correo


he realizado pruebas en base a tus comentario
en la empresa tememos el servicio en la nube de Amazon
donde tenemos instalado FireBird 3.0
y para obtener 10,000 se tarda 0.45 segundos
esto es relativamente rápido considerando que el servidor esta en estados unidos y me conecto desde mi país El Salvador



saludos

rastafarey 10-09-2016 04:20:18

Resp
 
Los articulos lo dicen bien claro.

Esta es su solucion http://synopse.info/fossil/wiki/Synopse+OpenSource que aparte es de codigo abierto y esta muy bien optimizado.

Y si no me creen lean esto http://synopse.info/forum/viewtopic....d=18831#p18831 para que vean lo que pudo superar mOrmot.

No me crear a mi lean y si aun asi no se convencen hagan pruebas comparen con DataSnap, Remobjects o cualquiera que se les ocurra. Y si aparte se usa una base de datos NoSql, entonces se van a sorprender.

De verdad matense por su propio pulso(Eso quieren decir que hagan ustedes mismo la verificaciones) y veran lo rapido lo escable, y lo eficiente que son estas librerias.

El problema no es la base de datos si no la capa de transporte.


La franja horaria es GMT +2. Ahora son las 17:07:40.

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