Ok, so I worked on the ASP.NET project for a while, and it seems I made some bad design decisions that come back to haunt me, as the project continues to get bigger and bigger in terms of data content.
After studying .NET memory management, I think I have identified a number of potential causes. Since the material I am doing is not particularly special, I wonder if there is a standard template for achieving what I want to do, which is missing.
So, I have (a somewhat expensive query) that gives something from 1 to 20,000 results. In subsequent queries, we can simply pager through the result set, so I save this result in the session. Session - InProc. I am wondering:
Does it make sense a) to store result b) in a c) in-process session? I want speed (a). I donβt know if there is a more efficient way than storing it by the user (b), and if I use a more sophisticated state server, will it rather become slower (c)? Or could it be a solution, getting rid of these large objects faster, instead of storing the last set of results in RAM until the session expires?
If any result set> ~ 20,000 rows ends with a potentially confusing LOH, is there a general way around this?
I know this question is a little unsaid. I just realized that my overall design might be wrong (wrt scalability), and I'm just trying to gauge how accurate this is. I hope some tips on standard templates can be compiled, which nevertheless turn this into a useful question.
source share