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].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to