看板 C_Sharp 關於我們 聯絡資訊
使用.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
vidan41: 方法二,可以用orm採skip take的方式每次抓10筆 12/10 20:27
vidan41: 圖和表用ajax分開處理,圖只要畫一次就好 12/10 20:27
SinclairShen: 請問 如果每次最多只讀500筆資料 也是方式二比較好 12/10 20:34
SinclairShen: 嗎? 12/10 20:34
vidan41: viewstate本身就是微軟做webform的一個模擬有狀態的機制 12/10 20:38
vidan41: 近年MVC那麼盛行也有部分原因是因為viewsate的肥大導致 12/10 20:38
vidan41: 如果您寫的網站是webform架構而非MVC,我會建議能用client 12/10 20:39
vidan41: 端ajax的技術就多使用,盡量輕量化,少用viewstate 12/10 20:39
GoalBased: gridview的分頁應該不會一開始就全傳吧..? 12/10 22:11
GoalBased: 我用gv內建的分頁沒特別注意..但不會有效能問題 12/10 22:12
GoalBased: 之後你的趨勢圖適用char? 12/10 22:13
GoalBased: 你想想看每一個user 一進到這個圖表,你就要去資料庫 12/10 22:13
GoalBased: 撈一萬筆,畫成圖(jpg?),這個動作挺吃資源的 12/10 22:14
SinclairShen: 方法二的話dataview不是一開始就全傳,趨勢圖 12/11 08:49
SinclairShen: 是用.net chart 12/11 08:49
jcpf126: 我很好奇一萬筆資料存成Viewstate後送到client會有多大 12/11 08:51
jcpf126: 然後同時有1000人在線上,會吃掉Server多少上傳頻寬呢... 12/11 08:55
SinclairShen: 以方法二,1萬筆大於1MB 12/11 11:19
SinclairShen: 1萬筆大約1MB 12/11 12:56
vivi303030: 好奇,1萬筆資料呈現到web需要多少時間? 12/23 09:27