Felipe, buscarìa mas el conflicto por el lado del JsonStore de JS que por el
lado de NH. Tenes identificado donde tenes el cuello de botella?
Saludos
Leandro

2010/1/7 Juan Cuello <[email protected]>

> Hola,
>
> Yo he tenido que programar una grilla para paginar 5000 elementos. Si
> realizas las consultas con paginación, me funciona como un rayo.
>
> Algo así como:
>
>        protected IList<T> GetPageList<TKey>(string filter, TKey key,
> string orderProperty, int firstResult, int maxResults)
>        {
>            string hQuery = string.Format("from c in {0} where c.{1}
> = :parameter order by c.{2}", persitentType.Name, filter,
> orderProperty);
>            IQuery query = NHibernateSession.CreateQuery(hQuery);
>            query.SetParameter<TKey>("parameter", key);
>            if (firstResult > -1) query.SetFirstResult(firstResult);
>            if (maxResults > -1) query.SetMaxResults(maxResults);
>            return query.List<T>();
>        }
>
> Principalmente usando SetFirstResult y SetMaxResults (esta función del
> ejemplo es una genérica de una app mía). Y si te va lentito, siempre
> puedes agregar un índice en la bbdd por el campo de filtro (si existe
> dicho filtro).
>
> Ya te digo que con listas de 5000 elementos tengo tiempos de respuesta
> en la web inferiores a 1 segundo (con rendering incluido).
>
> Por las pruebas, parece que el tiempo de respuesta se mantiene
> constante aunque incrementes el número de elementos, ya que
> simplemente incrementas el número de páginas, no se resultados de una
> consulta.
>
>
> On 6 ene, 05:28, Juan <[email protected]> wrote:
> > Por desgracia no me dan comision por la propaganda, pero si estas
> > haciendo profiling puede que te venga bien (si no lo has hecho ya),
> > darle una ojeada a nhprof (http://nhprof.com/). Deberia darte una idea
> > de por donde anda tu problema, si es efectivamente el cache, la
> > sesion, etc.
> >
> > On Jan 4, 10:54 am, Felipe <[email protected]> wrote:
> >
> >
> >
> > > Necesito desplegar una grilla, la cual actualmente estoy transformando
> > > de un grafo de objetos persistentes a DTOs.
> > > Lamentablemente el rendimiento es muy bajo, ya que cada celda de la
> > > grilla es una instancia, e incluso se combina una fila con celdas que
> > > provienen de otros objetos persistentes. Dado lo anterior hay que
> > > hacer un manejo importante a nivel de DTO, por lo cual armo algunos
> > > Dictionary para mejorar la eficiencia y además dado que la grilla es
> > > jerárquica.
> >
> > > Probé utilizando el comando "select new ClaseDTO(parametros)" para ver
> > > la mejora de rendimiento, y es notoria. Actualmente estoy recuperando
> > > cerca de 10.000 objetos, y esto afecta no sólo la recuperación, sino
> > > también el cierre de la Sesión.
> >
> > > El problema es que dado que la estructura es compleja, el constructor
> > > de la ClaseDTO es enorme, y quería ver si existía alguna alternativa
> > > de que NHibernate me devolviera el grafo de objetos sin ningún tipo de
> > > control (persistence manager), de este modo usa las entidades como
> > > DTOs o Bean transientes o "detached" y debiera disminuir el tiempo de
> > > carga.
> >
> > > La pregunta obvia es, ¿Es esto posible?, ¿mejoraría el rendimiento?
> >
> > > Gracias,
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>

-- 
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