Dont load such a huge data in ViewState. When you request for something, you send viewstate with it(even if it is an AJAX request). After receiving the viewstate it decrypts it using Machine key. It then modifies the viewstate according to your serverside program and then finally encrypts it... converts the encrypted string to Base64 and written over Response stream. That means for every request this huge amount of task IIS has to perform. Hence slow output. We generally place EnableViewState = false for frequently visited pages to have better performance. So according to me writing a Dataset(which serializes it and write to page) is not good. On the other hand, Server memory is very low. If there are lots of connections, there might be a huge possibility to have Session OutofMemory. But if you dont have concurrent connections, you might use Session. But dont put the dataset, as there are a lots of properties which are not required. Rather make a list of DataRows and place them in session(Improves than writing DataSet). But still, I dont like this as well. If I was there, I will always compromise Database hits than Server memory. :thumbsup:
Abhishek Sur **Don't forget to click "Good Answer" if you like this Solution.
My Latest Articles-->** Simplify Code Using NDepend
Basics of Bing Search API using .NET
Microsoft Bing MAP using Javascript