[問題] 大量資料呈現效能

看板C_Sharp (C#)作者 (SinclairShen)時間10年前 (2014/12/10 19:51), 編輯推噓4(4016)
留言20則, 5人參與, 最新討論串1/1
使用.net C# 1、同一時間可能有1000人在線上 2、讀取的table有2000萬筆資料 3、每次查詢讀取1萬筆資料 有查詢網頁,此網頁分兩個部份, 上半部將讀到的1萬筆資料劃成趨勢圖, 下半部將這1萬筆資料以GridView分頁呈現, 每頁顯示10筆資料 請問,在以上條件下,下列那種方式可以減少使用者等待時間? 還是另有其他的方式? 方式一: 一開始從資料庫讀入一萬筆資料, 將這一萬筆資料劃成趨勢圖, 再將資料以DataTable存於ViewState, GridView的資料來源則讀取該ViewState, 翻頁與欄位排序時也讀取該ViewState 方式二: 任何動作都從資料庫讀取, 從資料庫讀取這一萬筆資料劃成趨勢圖, Bind GridView時再從資料庫欲顯示的10筆資料, 翻頁與欄位排序時也都是從資料庫取出欲顯示的10筆資料 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.226.194.204 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1418212276.A.CA2.html

12/10 20:27, , 1F
方法二,可以用orm採skip take的方式每次抓10筆
12/10 20:27, 1F

12/10 20:27, , 2F
圖和表用ajax分開處理,圖只要畫一次就好
12/10 20:27, 2F

12/10 20:34, , 3F
請問 如果每次最多只讀500筆資料 也是方式二比較好
12/10 20:34, 3F

12/10 20:34, , 4F
嗎?
12/10 20:34, 4F

12/10 20:38, , 5F
viewstate本身就是微軟做webform的一個模擬有狀態的機制
12/10 20:38, 5F

12/10 20:38, , 6F
近年MVC那麼盛行也有部分原因是因為viewsate的肥大導致
12/10 20:38, 6F

12/10 20:39, , 7F
如果您寫的網站是webform架構而非MVC,我會建議能用client
12/10 20:39, 7F

12/10 20:39, , 8F
端ajax的技術就多使用,盡量輕量化,少用viewstate
12/10 20:39, 8F

12/10 22:11, , 9F
gridview的分頁應該不會一開始就全傳吧..?
12/10 22:11, 9F

12/10 22:12, , 10F
我用gv內建的分頁沒特別注意..但不會有效能問題
12/10 22:12, 10F

12/10 22:13, , 11F
之後你的趨勢圖適用char?
12/10 22:13, 11F

12/10 22:13, , 12F
你想想看每一個user 一進到這個圖表,你就要去資料庫
12/10 22:13, 12F

12/10 22:14, , 13F
撈一萬筆,畫成圖(jpg?),這個動作挺吃資源的
12/10 22:14, 13F

12/11 08:49, , 14F
方法二的話dataview不是一開始就全傳,趨勢圖
12/11 08:49, 14F

12/11 08:49, , 15F
是用.net chart
12/11 08:49, 15F

12/11 08:51, , 16F
我很好奇一萬筆資料存成Viewstate後送到client會有多大
12/11 08:51, 16F

12/11 08:55, , 17F
然後同時有1000人在線上,會吃掉Server多少上傳頻寬呢...
12/11 08:55, 17F

12/11 11:19, , 18F
以方法二,1萬筆大於1MB
12/11 11:19, 18F

12/11 12:56, , 19F
1萬筆大約1MB
12/11 12:56, 19F

12/23 09:27, , 20F
好奇,1萬筆資料呈現到web需要多少時間?
12/23 09:27, 20F
文章代碼(AID): #1KY3EqoY (C_Sharp)
文章代碼(AID): #1KY3EqoY (C_Sharp)