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:
- Converting a large ResultSet into objects takes very long time.
- Storing objects from a large ResultSet takes large amounts of memory. Application may eventually run out of memory and crash.
- 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.
There is no single solution to all performance problems. Cayenne offers a few strategies to improve performance. They should be applied where appropriate.
- Data Rows
- Iterating Through Data Rows
- Paginated Queries
- Caching Lookup Tables
- Turning off Context Synchronization