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

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

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