You can lazy load multi-valued property items and query result sets in order to minimize database access and enhance application performance. When you enable lazy loading on an item type or a repository, the cache initially loads only the stubs of the multi-valued property items or the query result set; these include only the repository IDs.

To accelerate item access, lazy loading is integrated with batch loading: when a lazy-loaded item is requested, it is loaded into the cache with a number of related—often contiguous—items, thereby facilitating access within the batch.

It makes sense to enable lazy loading in two cases:

In both cases, you should enable lazy loading if the potential number of items returned is very large, and you only need access to a relatively small subset. For example, if a multi-valued property or query is likely to return 10,000 items and users are likely to access only the first 100 of these, it makes sense to enable lazy loading for that item type or its repository. Conversely, eager loading provides better performance if you need access to all items or a wide spectrum of them.
