我有一张4000万行的表。
我想一次拿起大约200万并“处理”它们
为什么呢?
Cos处理处理1000万行+会降低性能,并且经常会超时。 (我需要这个独立于数据大小的工作,所以我不能继续增加超时限制。)
另外,我正在使用SQL Server。
答案 0 :(得分:1)
是否有增加的密钥,例如身份密钥?它是聚集索引吗?如果是这样,跟踪你得到的最后一个键应该相当简单,并执行以下操作:
SELECT TOP 1000000 *
FROM [MyTable]
WHERE [Id] > @LastId
ORDER BY [Id]
另外 - 请务必使用类似ExecuteReader
的内容进行阅读,这样就不会缓冲太多行。
当然,除了几千行之外,您还可以接受偶尔的往返行程,并一次向(例如)10000行请求。我不认为这在实际上会有任何效率(在这里和那里几毫秒)。