2

我有一张有 4000 万行的表。
我想一次提取大约 200 万个并“处理”它们。
为什么?
处理超过 1000 万行的 Cos 处理会降低性能,并且经常超时。(我需要这个工作独立于数据大小,所以我不能一直增加超时限制。)
另外,我正在使用 SQL Server。

4

1 回答 1

1

是否有增加的密钥,例如身份密钥?它是聚集索引吗?如果是这样,跟踪你得到的最后一个键应该相当简单,并执行以下操作:

SELECT TOP 1000000 *
FROM [MyTable]
WHERE [Id] > @LastId
ORDER BY [Id]

另外 - 一定要用类似的东西来阅读它ExecuteReader,这样你就不会缓冲太多的行。

当然,除了几千行之外,您还不如接受偶尔的往返,并一次请求(例如)10000 行。我认为这实际上不会降低效率(到处都是几毫秒)。

于 2009-04-03T09:26:33.473 回答