Tendrias que fijarte si todos los update son necesarios o se hacen updates
errados por que algun mapping quedo mal.

Por otro lado tendrias que fijarte si hay muchos selects repetidos, en este
caso, tenes algun componente que es candidato a cache de segundo nivel
durante el proceso (lee la documentacion sobre 2nd level cache)

En mi caso algunas veces he llegado a tiempos mas optimos cacheando info y
evitando miles de selects iguales que usando IStatelessSession. todo depende
en la relacion de selects contra inserts y updates y cuan repetidos son los
selects.

Gustavo.

2009/1/27 uhilari <[email protected]>

>
> Dario muchas gracias
>
> El usar el IStatelessSession ha sido una genial idea el proceso ahora
> se da en 3 minutos, pero aun no es suficiente, he estado probando lo
> que se trata de optimizer pero no ayuda mucho, al menos a lo que
> tengo, al contrario me retraso 0.5 segundos, alguna otra idea para
> saber lo que busco??
>
> Gracias
>
> On 26 ene, 10:20, Gustavo Ringel <[email protected]> wrote:
> > "Ler" y "Perfomante" duelen igual o más, ademas de que tu mail no aporta
> a
> > la discusion mientras que las sugerencias de Darío van al meollo del
> asunto.
> >
> > Por otro lado performante realmente no es una palabra en español, al
> menos
> > no hasta donde yo conozco, pero es muy usada en marcos de computación.
> >
> > Saludos.
> >
> > Gustavo.
> >
> > 2009/1/26 cubaman <[email protected]>
> >
> >
> >
> >
> >
> >
> >
> > > "- 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
-~----------~----~----~----~------~----~------~--~---

Responder a