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.
