blob: e50aea0a159d7e97d5f50ccbcd3c10583ac2e3b0 [file] [log] [blame]
Title: Performance Tuning
<P>Most performance problems in database applications, including those using ORM, are related to the inefficient queries and/or large volumes of data in the database. Here is a few common issues that a typical application may run into:</P>
<UL>
<LI>Converting a large ResultSet into objects takes very long time.</LI>
<LI>Storing objects from a large ResultSet takes large amounts of memory. Application may eventually run out of memory and crash.</LI>
<LI>Given a list of objects, there may be a need to retrieve a list of related objects. Often this is done in a suboptimal way, by issuing a single query for each dependent object.</LI>
</UL>
<P>There is no single solution to all performance problems. Cayenne offers a few strategies to improve performance. They should be applied where appropriate.</P>
<H3><A name="PerformanceTuning-Sections"></A>Sections</H3>
<OL>
<LI><A href="prefetching.html" title="Prefetching">Prefetching</A></LI>
<LI><A href="data-rows.html" title="Data Rows">Data Rows</A></LI>
<LI><A href="iterating-through-data-rows.html" title="Iterating Through Data Rows">Iterating Through Data Rows</A></LI>
<LI><A href="paginated-queries.html" title="Paginated Queries">Paginated Queries</A></LI>
<LI><A href="caching-lookup-tables.html" title="Caching Lookup Tables">Caching Lookup Tables</A></LI>
<LI><A href="turning-off-context-synchronization.html" title="Turning off Context Synchronization">Turning off Context Synchronization</A></LI>
</OL>