3000 records in session with 100 users online
That does sounds too much of data in a session at a given time.
I would go with
Cache
- it would be better option here.
Have a read of the following:
MSDN: ASP.NET Caching: Techniques and Best Practices[
^]
Cache Management in ASP.NET[
^]
UPDATE:
After reading Manfred answer and then question again, it does sounds like sharing a data across user. In that case,
Application
variables fit the bill best.