We're working on a classifieds site. It will be running asp.net & SQL Server.
Their current traffic stats are about 2000 visits a day.
For searching those classifieds, we need maximum performance. We came up with the following designs:
1. Load the data into a dataset, this would make the webserver take a big chunk out the memory I think, if the query wasn't really precise. On the other hand, paging and sorting would be very easy.
2. Load the data into a custom collection of objects. This collection implements ISortable to be able to sort, but paging would be a little harder. This seems like most beneficial solution, it doesn't go query the database on each page request and it doesn't use the heavyweight dataset.
3. When a user runs a search query, store the item id's in an intermediate table. Data to pass between pages would only be a queryid, to get the results back, inner joined with the data. This way the webserver is unloaded, but we do alot of database hits.
To specify: the list returned by the search query will most likely only incorporate the id, description, price and a date.
What do you think is the best solution and please comment your ansewer for grading.