具有大量数据的数据网格使用啥?

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,但我没票了:[

以上是关于具有大量数据的数据网格使用啥?的主要内容,如果未能解决你的问题,请参考以下文章

具有大量 UI 对象的 Flex 应用程序 == 慢?

使用NSUserDefault存储大量数据有啥缺点

在啥时候将大量结构化数据存储为 BLOB 才有意义?

SSE3指令有啥功能?

在 Postgres 中存储大量 JSON 数据是不可行的,那么有啥替代方案呢?

关于使用啥 pl-sql 从 Oracle 10G 数据库中提取大量记录(六百万)的任何建议,并从多个表中进行连接? [复制]