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
