2012-07-16 24 views
2

我在SQL Server中有一個包含12000多行的表。當我將所有行加載到一個asp.net網頁時,需要10到15分鐘才能加載所有行。在asp.net網頁中加載大量數據

請幫我在幾秒鐘內加載數據..

+3

簡單:**不要**一次加載所有的行!使用服務器端分頁 - 一次只加載10,50,100行 - 用戶無法處理更多的事情。 – 2012-07-16 05:27:14

+0

看看IIS壓縮http://technet.microsoft.com/en-us/library/cc771003(WS.10).aspx就像marc_s說的那樣,沒有人喜歡一次讀取那麼多的數據。如果用戶真的需要他們,請爲他們提供下載。 – 2012-07-16 05:46:02

+0

是的你是對的..其實我是這樣做的,因爲我想搜索所有記錄中的數據,並且我正在使用數據集的行過濾器來搜索當前加載的項目。但是現在我通過在視圖狀態中傳遞查詢並在表中的所有記錄中搜索數據來加載前100條記錄和搜索記錄。 – 2012-07-16 10:11:20

回答

0

解決方案:

  1. 您可以使用qzip。顯然,它不會將加載時間縮短到秒。但是你會看到加載時間的改進。

  2. 編寫一個處理程序,它以100爲單位返回結果,並使用jQuery異步顯示結果,如在Facebook中一樣,當你向下移動時,更多的故事被提供,你可以爲你的網站做類似的事情,或者你可以一個「加載更多」按鈕,除了用戶必須按下「加載更多」按鈕之外,其它功能都是一樣的。

注意:執行上述操作並不難。

0

可能你需要找到一個第三方網格控件,它支持點播virtual paging

1

該流程的哪個部分花費的時間最多?這個動作有很多不同的階段:

  1. 在SQL Server中查詢執行時間。
  2. 從SQL Server到數據讀取器(ADO.NET?跨網絡?)的傳輸時間
  3. 將數據綁定到ASP.NET中的網格。
  4. 將呈現的HTML傳輸到客戶端。

只有當你知道究竟什麼很慢,你能正確地優化。

+0

3一。現在解決的問題。謝謝 – 2012-07-16 11:22:02