Most ORM's tend to be very chatty and generate complex queries. Which is not a bad thing most of the time, but sometimes it get's out of hand and the queries will either be too complex or, and this I see the most, there will be way to many queries to answer relatively simple questions. Seeing thousands of queries for a simple webpage is not uncommon. In this session we will look at optimizing database access in ORM's. Using Nhibernate, LINQ &Entity Framework in the demos, we will examine how your ORM talks to the database and why. We will look at this problem from 2 sides. As a developer who would like to tweak and tune as little as possible and let the ORM do it's magic, and as a DBA who would like all queries to ask only for the data that you need to have at that time. Using a lot of demo's we will be looking at typical ORM features like Lazy Loading,Mapping, Caching, Inverse Relationships, etc. We will conclude with some best practices and lessons learned.