具有大量数据的数据网格使用啥?
Posted
技术标签:
【中文标题】具有大量数据的数据网格使用啥?【英文标题】:What to use for a datagrid with a lot of data?具有大量数据的数据网格使用什么? 【发布时间】:2011-04-27 16:08:16 【问题描述】:发现了这个有趣的面试问题:
您需要在 Web 窗体上的 DataGrid 中显示您部门过去 5 年的销售数据。性能非常重要。检索数据时使用的最佳策略是什么?
a) 使用 DataReader 对象检索 DataGrid 的数据。 b) 使用 DataSet 对象检索 DataGrid 的数据。 c) 使用简单的选择语句作为 DataGrid 的数据源。 d) 使用缓存的 XML 文件作为数据 使用 数据集。我的答案是 c) 但我不太确定 谁能指出我正确的答案并向我解释 谢谢
【问题讨论】:
【参考方案1】:-
如果性能非常重要,则不要使用数据网格,而是使用中继器或普通循环。
我会假设缓存的 XML 文件(内存)比从数据库中检索数据要快,但也可能会使用大量内存,所以我认为这不是正确的答案。
select 语句和 DataReader 非常相似,但 DataReader 有一些开箱即用的功能,所以这就是我的答案。
【讨论】:
如何在没有 DataReader 或 DataAdapter 的情况下对 .net 中的数据库执行 select 语句?【参考方案2】:我可能会说提供的答案中的选择 A,但分页绝对是更正确的答案。 DataSet 很慢并且会加载整个表,而 DataReader 非常快,只是遍历记录。
使用 select 语句作为数据源只是不好的做法,从不推荐。
【讨论】:
【参考方案3】:基本上任何时候测试提到性能以及 DataReader 和 DataSet,经验法则是 DataReader == 快,DataSet == 慢。
【讨论】:
我个人的回答是“购买一个网格控件,如果它很重要,它会执行服务器端分页”【参考方案4】:我会使用paging。
你也可以做到这一点using stored procedures。
【讨论】:
是的,这是正确的做法,IMO。 +1,但我没票了:[以上是关于具有大量数据的数据网格使用啥?的主要内容,如果未能解决你的问题,请参考以下文章
在 Postgres 中存储大量 JSON 数据是不可行的,那么有啥替代方案呢?
关于使用啥 pl-sql 从 Oracle 10G 数据库中提取大量记录(六百万)的任何建议,并从多个表中进行连接? [复制]