【发布时间】:2013-08-13 16:53:09
【问题描述】:
我正在开发 asp.net mvc 应用程序,它提供了使用 DATAREADER 从 ORACLE 数据库读取数据并将这些行呈现给用户的功能(有时高达 1000 万)。 datareader 读取操作在读取大约 900,000 行后抛出内存不足异常。
我正在和我的同事讨论这个问题,他建议我应该使用无连接范式(可能是实体框架)或存储过程并以块的形式引入数据。
我想知道是否有人可以权威地说出解决上述问题的最佳方法。
【问题讨论】:
-
您打算如何将数据呈现给用户?一次在页面上显示所有 1000 万条记录?对记录进行分页以便一次只能看到几百个? AJAX 在您滚动时动态获取更多记录?
-
一个词:不要 - 除非您必须进行统计分析或其他操作,否则不要检索数百万行。你将如何处理它?您的用户将如何与如此庞大的数据集进行交互?不可能找到好的解决方案。 仅获取尽可能多的数据,以尽可能多地使用/显示给用户等 - 获取 100、500、1000 行 - 仅此而已。
-
"mbeckish"/marc_s 我已经在分页,但在分页之前我正在检索 all 数据(当然,这种方法不适用于 1000 万条记录) - 我喜欢建议的方法通过 mbeckish 使用 AJAX 在用户滚动时动态获取更多记录。我不太确定我将如何实现这一点-您可以建议一个链接吗?谢谢
-
@user430017 研究术语“无限滚动”。 asp.net mvc 有很多选择。
-
感谢埃里克·金。我会做研究并回复你。
标签: asp.net-mvc oracle datareader