Hi Jason, Glad to update that I finally had time between critical bugs to implement your suggestion, and at first impression, it looks like it helped quite a lot! The many roundtrips overhead was decreased, although the batch query overhead was increased. But still its seems the batch query overhead is tolerable, as opposed to the many roundtrips overhead.
Thanks a lot! Dor Rotman. On May 11, 2:13 pm, Jason Dentler <[email protected]> wrote: > Oops. Wrong post. This is the one: > > http://ayende.com/Blog/archive/2010/01/16/eagerly-loading-entity-asso... > > On Tue, May 11, 2010 at 6:08 AM, Jason Dentler <[email protected]>wrote: > > > > > > > This may help: > >http://ayende.com/Blog/archive/2009/04/27/nhibernate-futures.aspx > > > Without your mappings and query, we really can't tell you more. > > <http://ayende.com/Blog/archive/2009/04/27/nhibernate-futures.aspx> > > On Mon, May 10, 2010 at 11:32 AM, Dor Rotman <[email protected]> wrote: > > >> Hello, > >> Consider this scenario: I need to query for employees, and: > >> 1. Each employee has a collection of addresses, each address has a > >> collection of phone numbers. > >> 2. The query must run as fast as possible, since I'm focusing on the > >> performance aspect now. > >> 3. Paging should be supported. > > >> Right now there are no lazy properties, since all objects will > >> eventually be serialized via WCF. > >> So each object returned from the query sends NH to do lots of > >> roundtrips to the DB, to populate all collections. > > >> If I do an eager fetch on everything, I get a Cartesian product, and > >> then need to run the DistinctRootEntityTransformer. As far as I know, > >> it does not affect the SQL statement, but rather works on the returned > >> CLR objects. Therefore paging will not work well, because some records > >> from the returned result set will be ignored. Additionally, it came to > >> having 5500 rows returned for 270 entities, before running the > >> transformer. This is due to the Cartesian product. > > >> How can I optimize the current implementation? Is there any way to > >> make less DB roundtrips while still being able to page properly? (and > >> not loading a whole lot of CLR objects to memory?) > > >> Any assistance would be greatly appreciated. > > >> Thanks, > >> Dor Rotman. > > >> -- > >> You received this message because you are subscribed to the Google Groups > >> "nhusers" group. > >> To post to this group, send email to [email protected]. > >> To unsubscribe from this group, send email to > >> [email protected]<nhusers%[email protected] > >> > > >> . > >> For more options, visit this group at > >>http://groups.google.com/group/nhusers?hl=en. > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group > athttp://groups.google.com/group/nhusers?hl=en. -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
