作者SinclairShen (SinclairShen)
看板C_Sharp
标题[问题] 大量资料呈现效能
时间Wed Dec 10 19:51:14 2014
使用.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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1418212276.A.CA2.html
1F:推 vidan41: 方法二,可以用orm采skip take的方式每次抓10笔 12/10 20:27
2F:→ vidan41: 图和表用ajax分开处理,图只要画一次就好 12/10 20:27
3F:→ SinclairShen: 请问 如果每次最多只读500笔资料 也是方式二比较好 12/10 20:34
4F:→ SinclairShen: 吗? 12/10 20:34
5F:推 vidan41: viewstate本身就是微软做webform的一个模拟有状态的机制 12/10 20:38
6F:→ vidan41: 近年MVC那麽盛行也有部分原因是因为viewsate的肥大导致 12/10 20:38
7F:→ vidan41: 如果您写的网站是webform架构而非MVC,我会建议能用client 12/10 20:39
8F:→ vidan41: 端ajax的技术就多使用,尽量轻量化,少用viewstate 12/10 20:39
9F:推 GoalBased: gridview的分页应该不会一开始就全传吧..? 12/10 22:11
10F:→ GoalBased: 我用gv内建的分页没特别注意..但不会有效能问题 12/10 22:12
11F:→ GoalBased: 之後你的趋势图适用char? 12/10 22:13
12F:→ GoalBased: 你想想看每一个user 一进到这个图表,你就要去资料库 12/10 22:13
13F:→ GoalBased: 捞一万笔,画成图(jpg?),这个动作挺吃资源的 12/10 22:14
14F:→ SinclairShen: 方法二的话dataview不是一开始就全传,趋势图 12/11 08:49
15F:→ SinclairShen: 是用.net chart 12/11 08:49
16F:→ jcpf126: 我很好奇一万笔资料存成Viewstate後送到client会有多大 12/11 08:51
17F:→ jcpf126: 然後同时有1000人在线上,会吃掉Server多少上传频宽呢... 12/11 08:55
18F:→ SinclairShen: 以方法二,1万笔大於1MB 12/11 11:19
19F:→ SinclairShen: 1万笔大约1MB 12/11 12:56
20F:推 vivi303030: 好奇,1万笔资料呈现到web需要多少时间? 12/23 09:27