繁体   English   中英

我正在使用大量数据进行比较..将数据分页到数据表是否有任何想法

[英]I am using large amount of data for comparison.. is there any idea for paging the data to datatable

我正在使用大量数据进行比较,同时从数据库中获取记录以获取成千上万的记录并插入到数据表中,但是使用更多的内存和性能却非常慢。.是否有将数据分页到数据表的想法。

有一种方法可以做到。 这可能是许多解决方案之一。 如果说,您有一个表MainTable ,则如下创建临时表TempTable

Select Id, ROW_NUMBER() OVER(ORDER BY id) AS RowNum into TempTable from  MainTable

这将在作业开始时为记录创建参考。 因此,如果将删除或添加任何记录,它们不会破坏您的代码。

现在,在C#中,首先,检索max(RowNum)并使用this和pageSize编写逻辑,在该逻辑中,您可以在计算循环中选择部分记录,并按如下方式检索数据

Select mt.* from MainTable mt inner join TempTable tt on mt.id = tt.id and tt.rownum between <startRow> and <endRow>

其中startRowendRow是一个计算值。 如果在长时间运行的作业运行时删除了某些行,则返回的查询可能不完全是您设置的页面大小。 然后清理您的临时表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM