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-manipulation-with-sql-native/
- 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 Quintana
http://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
-~----------~----~----~----~------~----~------~--~---

Responder a