Hola Pedro!

Primero gracias por tu completa respuesta.

Si, efectivamente usé un profiler para ver la select que esta generando NH
y esa es la que puse en el management studio. Gracias por los links, voy a
leerlos con tiempo. En cuanto saque la lógica de configuración e
inicialización de NH al setup les comento como fueron los resultados. Me
imaginaba que algo de tiempo se lo llevaba eso pero no pensé que era tanto.

Gracias nuevamente.

Saludos,
César

El mié, nov 19, 2014 08:08 PM, Pedro Wood <[email protected]> escribió:

> Hola César
>
> Cuando corrés el query desde el managment studio sólo toma en cuenta el
> tiempo de la consulta en si, en cambio tu test incluye tiempo de conexión a
> la base e inicialización de NH.
>
> En ese test seguro se está llevando la mayor parte del tiempo esto último
> y no la consulta en si.
>
> Como primer paso sacá esto al setup de los tests:
>
> Configuration nhConfiguration = new Configuration();
> nhConfiguration.Configure("hibernate-performance.cfg.xml");
> ISessionFactory sessionFactory = nhConfiguration.BuildSessionFactory();
>
> Para conocer más sobre el tema del manejo de la sesión:
>
>
> http://joseoncode.com/2011/03/03/effective-nhibernate-session-management-for-web-apps/
>
> Para mejorar la performance de NH hay muchas cosas que se pueden hacer,
> desde la configuración, el manejo de la sesión, en las consultas en sí
> (según cómo las escribís, si usas lazy loading, o eagar fetch), ...
> Un problema muy común como es el SELECT n+1
>
> Acá tenés info de performance:
>
> http://geekswithblogs.net/Optikal/archive/2013/03/10/152371.aspx
>
> Hay que empezar por diagnosticar bien dónde están los problemas de
> performance y para eso necesitás por lo menos tener un log, o un profiler,
> para ver el SQL que está ejecutando NH.
>
> Saludos,
>
> Pedro
>
>
>
> 2014-11-19 18:34 GMT-03:00 César Pistiner <[email protected]>:
>
> Si!! es el único test que estoy corriendo, en cuanto lo pruebe les comento
>> como fue!
>>
>> Muchas gracias!
>>
>> Saludos,
>> César
>>
>> El mié, nov 19, 2014 06:04 PM, Juan José Montes de Oca Arbós <
>> [email protected]> escribió:
>>
>> Hola Cesar, si este es el único tests ejecutás demora mucho, porque
>>> primero debe inicializar varias cosas.
>>>
>>> En un proyecto en el que trabajo pasaba lo mismo, y la solución fue
>>> agregar un test vacío que se ejecutara primero, con un nombre tipo a00().
>>>
>>> También, como extra, podés probar de sacar la configuración de NH al
>>> setup de los tests para reducir los tiempos de configuración de NH.
>>>
>>> Espero que te sirva de ayuda... ya nos cuentas como sigue la cosa.
>>>
>>> Saludos Y ÉXITOS!!
>>>
>>>
>>> --
>>> Juan José Montes de Oca Arbós.
>>>
>>> ===========================
>>> Web personal: http://juanjose.montesdeocaarbos.com.ar/blog/
>>>
>>> El 19 de noviembre de 2014, 17:32, César Pistiner <[email protected]>
>>> escribió:
>>>
>>>> Hola gente!
>>>>
>>>> Los molesto con un tema que me tiene mal, estoy teniendo algunos
>>>> problemas de performance en nuestra aplicación web. Para atacar el problema
>>>> puntual me armé un test que es el siguiente:
>>>>
>>>> [Test, Timeout(5000)]
>>>> [Category("Performance")]
>>>> public void ImportacionDeComprobantes()
>>>> {
>>>> Configuration nhConfiguration = new Configuration();
>>>> nhConfiguration.Configure("hibernate-performance.cfg.xml");
>>>> ISessionFactory sessionFactory = nhConfiguration.BuildSessionFactory();
>>>> using (ISession session = sessionFactory.OpenSession())
>>>> {
>>>> IResponsable emisor = session.Get<Transportista>(new
>>>> Guid("CCD461E8-1299-4868-856F-9F0A00FDF3F5"));
>>>>
>>>> var criteria = session.CreateCriteria<DetalleResumenDeCuenta>();
>>>> criteria.Add(Restrictions.Eq("IdExterno", "CC121"));
>>>>
>>>> criteria = criteria.CreateCriteria("Comprobante", "c");
>>>> criteria.Add(Restrictions.Eq("c.Emisor", emisor));
>>>>
>>>> Assert.IsTrue(criteria.List().Count > 0);
>>>> }
>>>> }
>>>>
>>>> La ejecución de este test supera los *5 segundos*, pero me llama mucho
>>>> la atención que si pongo la sentencia que genera NH en el SQL Management
>>>> Studio, tarda *nada*, menos de 1 segundo. ¿Puedo tener tanta
>>>> diferencia? ¿Qué puedo revisar para mejorar esto?
>>>>
>>>> Espero haber sido claro, si necesitan algo más de info (mapping,
>>>> índices que tengo creados, etc.) puedo compartirlas sin problema.
>>>>
>>>> Desde ya, muchas gracias!
>>>>
>>>> Saludos,
>>>> César
>>>>
>>>  --
>>>> --
>>>> Para escribir al Grupo, hágalo a esta dirección:
>>>> [email protected]
>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>>>> ---
>>>> Has recibido este mensaje porque estás suscrito al grupo
>>>> "NHibernate-Hispano" de Grupos de Google.
>>>> Para anular la suscripción a este grupo y dejar de recibir sus
>>>> mensajes, envía un correo electrónico a
>>>> [email protected].
>>>> Para acceder a más opciones, visita https://groups.google.com/d/optout.
>>>>
>>>
>>>  --
>>> --
>>> Para escribir al Grupo, hágalo a esta dirección:
>>> [email protected]
>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>>> ---
>>> Has recibido este mensaje porque estás suscrito al grupo
>>> "NHibernate-Hispano" de Grupos de Google.
>>> Para anular la suscripción a este grupo y dejar de recibir sus mensajes,
>>> envía un correo electrónico a
>>> [email protected].
>>> Para acceder a más opciones, visita https://groups.google.com/d/optout.
>>>
>>  --
>> --
>> Para escribir al Grupo, hágalo a esta dirección:
>> [email protected]
>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>> ---
>> Has recibido este mensaje porque estás suscrito al grupo
>> "NHibernate-Hispano" de Grupos de Google.
>> Para anular la suscripción a este grupo y dejar de recibir sus mensajes,
>> envía un correo electrónico a
>> [email protected].
>> Para acceder a más opciones, visita https://groups.google.com/d/optout.
>>
>  --
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
> ---
> Has recibido este mensaje porque estás suscrito al grupo
> "NHibernate-Hispano" de Grupos de Google.
> Para anular la suscripción a este grupo y dejar de recibir sus mensajes,
> envía un correo electrónico a
> [email protected].
> Para acceder a más opciones, visita https://groups.google.com/d/optout.
>

-- 
-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
--- 
Has recibido este mensaje porque estás suscrito al grupo "NHibernate-Hispano" 
de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía 
un correo electrónico a [email protected].
Para obtener más opciones, visita https://groups.google.com/d/optout.

Responder a