There are performance problems around viewing a large list with several thousand items. I want to cache it to reduce the query to the database. Users need to be able to see this list, but with the security levels they need it security trimmed to only see items they should. The ASPX page GridView takes a data source of List. The requirements want all items displayed on the page so pagination is not an option.
Would it be inefficient to store an SPListItemCollection in cache, then use an SPQuery on it to create a List each time they load the page? I thought about storing this list in Session to reduce the time to make the list, but if the SPList gets updated by another user then the Session list will not be updated. Thoughts?