Buen día Carlos!

Si!! Ni bien llego voy a probar eso y les cuento.

Muchas gracias!

Abrazo,
César

El jue, nov 20, 2014 06:48 AM, Carlos Peix <[email protected]> escribió:

> Cesar,
>
> Fijate en que setup (TestInitialize, ClassInitialize o AssemblyInitialize)
> esta la lógica de inicialización y pasalo lo mas arriba posible.
>
> ----------------------------------
> Carlos Peix
>
> 2014-11-19 22:28 GMT-03:00 César Pistiner <[email protected]>:
>
> 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 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