 <p>I would first try to optimze your query. Is it slow in SSMS? Do you use proper indices? Do you need all columns. Most important: do you need all 50000 rows to be displayed?</p> <p>50000 records are not many records, but it's unusual to show all in a web application since that means you have to generate the HTML for all records and display it in the client's browser(maybe even using <code>ViewState</code>). So i would suggest to use database paging(f.e. via <a href="http://msdn.microsoft.com/en-us/library/ms186734.aspx" rel="nofollow"><code>ROW_NUMBER</code></a> function) to partition your resultset and query only the data you want to show(f.e. 100 rows per page in a <code>GridView</code>). </p> <p><a href="http://www.asp.net/web-forms/tutorials/data-access/paging-and-sorting/efficiently-paging-through-large-amounts-of-data-vb" rel="nofollow">Efficiently Paging Through Large Amounts of Data</a> </p>