The object cache stores metadata about various SharePoint objects, such as site collections, sites, libraries, lists, documents and list items. Creating these objects in memory is a resource-intensive process, so there are clear advantages to maintaining information in a cache to avoid recreating the object every time a page requests navigation data or the results of a query. Site navigation in SharePoint, together with various Web Parts such as the Content Query Web Part, relies on the object cache for data. Developers can also leverage the object cache to improve query performance in customizations. Like the page output cache, the object cache is only available on sites where the publishing features are enabled.
What is the ideal situation to use the object cache
By default, the object cache is enabled on every site collection. You cannot disable it nor would you want to, because it improves the performance of your SharePoint farm with few, if any, drawbacks. However, you can configure various aspects of how the object cache behaves.
Configuring the object cache
You can configure the object cache on a per-site collection-basis. To do this, on the Site Settings page, under Site Collection Administration, click Site collection object cache. You can configure various aspects of object caching as in the following:
- Object Cache Size. By default, this is set to 100 MB.
- Object Cache Reset. You can use these options to flush the object cache for your site collection. Typically, this is not needed unless the data in the cache becomes out of sync with changes you have made.
- Cross List Query Cache Changes. By default, SharePoint caches the results of cross-list queries for 60 seconds. You can change this to check the server for changes every time a cross-list query runs, or to use cached results for a specific number of seconds. Checking the server for changes every time will lead to more accurate results for regularly-updated lists, but it can impact performance.
- Cross List Query Results Multiplier. Because of security trimming, a specific cross-list query can return different results for different users. To ensure that all users see a valid set of results, SharePoint will cache more results than were initially requested. By default, the cross list query results multiplier value is set to 3. If your lists contain a large number of unique permissions, you may want to increase this value. However, this will increase memory consumption on WFE servers.
In most cases, you should not need to change the default object cache settings. In some circumstances, you may need to increase the size of the cache. To determine whether this is the case, monitor the "Total number of cache compactions" performance counter. If this number is high, you can improve performance by increasing the size of the cache.