我正在使用大量数据进行比较..有没有办法将数据分页到数据表
Posted
技术标签:
【中文标题】我正在使用大量数据进行比较..有没有办法将数据分页到数据表【英文标题】:I am using large amount of data for comparison.. is there any idea for paging the data to datatable 【发布时间】:2015-12-28 07:39:27 【问题描述】:我正在使用大量数据进行比较,同时从数据库中获取数十万条记录并插入数据表中的记录,但是它使用更多的内存和性能非常非常慢..有没有分页数据的想法到数据表。
【问题讨论】:
最好的方法是在数据库中而不是在内存中进行比较。如果由于某种原因这也不可能,则仅将分页数据加载到DataTable
中。在 SQL-Server 中,您可以使用 ROW_NUMBER
函数。
我需要来自 DB 的完整数据,并进行从 isfoc 到 Unicode 的转换.. 为此我需要所有数据.. 而不是一次获取所有数据,我们可以一次获取前 1000 个数据,然后获取下一个 1000 个数据我必须做的..
【参考方案1】:
有办法做到这一点。这可能是众多解决方案之一。如果假设您有一个表MainTable
,请按如下方式创建临时表TempTable
Select Id, ROW_NUMBER() OVER(ORDER BY id) AS RowNum into TempTable from MainTable
这将为作业开始时的记录创建参考。因此,如果任何记录将被删除或添加,它们不会破坏您的代码。
现在,在 c# 中,首先,检索 max(RowNum)
并使用它和 pageSize
编写逻辑,在其中您在计算循环中选择记录的部分,然后检索数据,如下所示
Select mt.* from MainTable mt inner join TempTable tt on mt.id = tt.id and tt.rownum between <startRow> and <endRow>
其中startRow
和endRow
是计算值。如果在长时间运行的作业运行时删除了某些行,则此类查询的返回可能不完全是您设置的页面大小。然后清理你的临时表。
【讨论】:
以上是关于我正在使用大量数据进行比较..有没有办法将数据分页到数据表的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法将当前日期与以 VARCHAR 格式存储在数据库中的日期进行比较?
限制从drupal 7中的`views_get_view_result()`获取的记录数来进行分页
table大量数据无分页- virtualizedtableforantd