2011-03-15 88 views
0

我使用oracle作爲後端。在數據庫中有一個包含5000條記錄和160列的表格。我想在gridview中顯示所有這些記錄(在asp.net,c#中)。但是需要超過10分鐘來填充數據集。你能建議其他選擇嗎?是否有可能使用線程?用數千條記錄填充數據集

+0

您可以一次帶一頁嗎?這種方式你只需要帶幾條記錄,然後在下一個/上一個按鈕點擊,你可以按需加載數據。 – 2011-03-15 07:38:52

+0

你有沒有在數據庫上應用索引? – 2011-03-15 07:44:31

回答

2

我的猜測是它不是.net代碼,需要10分鐘。瀏覽你的代碼,找出它所處的時間點。它很可能是你的數據庫查詢。如果是查詢,那麼你需要找出調整方法。

另外,沒有用戶需要查看具有160列的5000條記錄。找出更好的方式來顯示這些信息,提供向下鑽取或其他方式來理解和瀏覽所有數據。除此之外,您可以嘗試分頁。

而且,不要使用另一個線程。這是一個需要重新設計的設計。

0

添加另一個線程不是解決方案,可能會使您的代碼太複雜。恢復記錄應該很簡單,但是由於你的記錄太多,它可能會很慢。嘗試在數據庫端進行數據分頁,這將最大限度地減少數據傳遞到網絡的數據量。

1

hejdig。

幾年前,我有一個類似的場景,那裏有一個討論,不管是網格還是需要花費時間的查詢&數據處理。它在WinForm 2.0中,但問題是一樣的。

我們下載了一個分析器並在幾分鐘內得到了答案。網格。 查詢和處理數據的時間只有百分之幾。

如果嘗試將5000行下載到aspnet中的數據網格中,可能會窒息系統。從視圖狀態轉向開始。你失去了很多功能,但贏得了比特幣。運行一個分析器。使用MS的datagridview以外的網格進行研究。嘗試分頁。近似按此順序。

如果你知道你的用戶,你可以保存一個電子表格供他們打開。還有一些簡單的技巧來作爲電子表格打開頁面(只輸出CSV或XML並更改MIME類型)。如果是需要時間的GUI。

快樂的黑客攻擊和良好的狩獵。

/OF