Gracias Diego!! sí creo que lo mejor es precalcular lo que pueda (async para 
que permita seguir) y el resto en el sql en background, algo asi había pensado, 
son cotizadores que necesitan calcular muchos datos a partir de parametros base 
y tablas existentes para despues hacer cálculos resumen con toda la data 
precalculada, hoy usan matrices enormes y la performance es terrible.
Mil gracias por la respuesta a vos y a los que responden por la disposición a 
dar una mano siempre!
Saludos
Roxana


From: Diego Jancic 
Sent: Thursday, April 16, 2015 8:02 PM
To: [email protected] 
Subject: [puntonet] consulta performance

Hola Roxana,

Depende del tipo de calculo que tengas que hacer y del tiempo que le quieras 
dedicar. 

Lo mas performante en cuanto a lectura es ir calculando la info que necesitas a 
medida que vas agregando nueva información. Esto incrementa mucho el espacio 
que necesitas pero a la hora de leer, la consulta es trivial.  Por eso te 
conviene guardar todos los contadores, sumas y demás ya calculados. 

Otra solución mas fácil es calcularlo en el sql server. Si lo ejecutas en 
background en general es viable, pero si lo necesitas en real-time no te va a 
servir. También podes hacer data warehousing, pero depende de tus conocimientos 
si te conviene o no gastar tiempo en ese.

La tercer opción, calcularlo en código, depende de la cantidad de datos que 
tengas y la complejidad de los cálculos. Si la data no es mucha (entra en 
memoria) y los cálculos son muy complejos, entonces si podes hacer esto. 

En los casos mas extremos donde tenés mucha info y los cálculos son muy 
complejos, yo iría agregando y precalculando durante escritura (incluso de 
forma async)

Si das mas info de que tipo de cálculos tenés que hacer quizás te puedo decir 
mejor. 

Abrazo,
Diego

On Apr 16, 2015 5:41 PM, "Ing. Roxana Leituz" <[email protected]> wrote:

  Estimados.. como siempre recurro a los que saben! 
  Tengo que hacer una aplicación donde tengo que calcular muchos datos 
utilizando datos ingresados por pantalla por un lado y datos guardados en la 
base por el otro. La pregunta es por la performance.. Tomo mis datos de 
ingreso, los paso a la base y dejo que sql haga todo, supongo que puedo 
trabajar de modo asincrono, o cargo datos en memoria , y proceso, aunque me 
parece una barbaridad sobrecargar la memoria con matrices enormes..,pero 
consulto.. a lo mejor estoy equivocada o hay opciones que desconozco,  la 
aplicación es web .
  muchas gracias!!

Responder a