"- Usar consultas nombradas con Hql es un poco más performante" Ler "Perfomante" me da dolor en los ojos... Saludos
On 25 ene, 17:35, Dario Quintana <[email protected]> wrote: > Hola > > Es dificil saber a ciencia cierta donde hacer los retoques, pero te podría > decir qué le des una mirada a los siguientes tópicos: > - Usar StatelessSession. Es una Session sin cache de primer nivel, diseñada > para procesos en lotes. > - Usar Updates en > "masa".http://blog.darioquintana.com.ar/2007/12/11/nhibernate-bulk-manipulat... > - Usar consultas nombradas con Hql es un poco más performante, las consultas > se cachean en la compilación de NH y se usan siempre. > > Pero bueno, cada aplicación es un mundo, y es dificil decir donde está el > problema. Saludos > > > > On Sun, Jan 25, 2009 at 12:40 AM, uhilari <[email protected]> wrote: > > > Hola a todos Foreros. > > > Tengo este problema, lo que pasa es que en el Sistema que estamos > > desarrollando, bueno, mas que un desarrollo es una actualizacion, lo > > que hacemos es tomar un sistema que existe hech en VB6, que usa SQL > > nativo y ahora lo estamos pasando a C# .Net para la persistencia > > estamos usando NHibernate. La programacion de los procesos son mas > > logicos y mas intuitivos para cualquier persona que no haya > > participado en el desarrollo. Esta es una gran ventaja. > > > Pero ahora viene el problema, veran en el sistema (tanto anterior como > > actual) tenemos 3 procesos criticos que son procesos en lotes del tipo > > Background, en el primer Sistema lo mas que demoraba cualquiera de > > estos procesos era de 2 minutos, el tiempo promedio era de 20 > > segundos, pero ahora haciendolo con NHibernate el mejor tiempo que > > conseguimos fue de 10 minutos, esto es inaceptable por parte del > > proyecto. > > > Tengo una teoria de por que demora tanto, que cuando realizo el > > proceso veo que dispara muchos Insert - Updates y Select (sobre todo > > los select), asi que lo que hicimos para mejorar esto es poner los > > datos necesarios en una cache en la memoria de la PC, esto hizo que el > > tiempo bajara a 4:40 pero aun asi es inaceptable. > > > El primer proceso que hicimos teniamos el Session.Save y el > > Session.Flush, dentro del bucle, uno despues del otro, y el tiempo era > > de 4:40. Luego lo que usamos fue: en el bucle del proceso solo poner > > los Session.Save y dejar el Session Flush, para salir del bucle, pero > > esto no mejoro el tiempo del proceso, sino que nos creo un tiempo > > muerto en la Interfaz. > > > Lo que pido a Uds. expertos en NHibernate es que nos ayuden con ideas > > de como poder accelerar este proceso. > > Ya que si el tiempo sigue igual, no justifica el hecho e hacer un > > nuevo sistema. > > > Gracias > > -- > Dario Quintanahttp://darioquintana.com.ar --~--~---------~--~----~------------~-------~--~----~ Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano -~----------~----~----~----~------~----~------~--~---
