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

本文关键字:数据 是否 分页 数据表 比较 | 更新日期: 2023-09-27 18:15:13

我正在使用大量的数据进行比较,同时从DB获取数十万条记录并插入到数据表,但它使用更多的内存和性能非常非常慢。有没有办法把数据分页到datatable

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

有一个办法。这可能是众多解决方案之一。假设您有一个表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>

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