Sql server 如何一次获取sql表中所有行的批处理?

Sql server 如何一次获取sql表中所有行的批处理?,sql-server,batch-processing,row-number,Sql Server,Batch Processing,Row Number,我有一张4000万行的桌子 我想一次提取大约200万并“处理”它们。 为什么? Cos处理1000多万行会降低性能,并且经常超时。(我需要它独立于数据大小工作,所以我不能一直增加超时限制。) 另外,我正在使用SQL Server。是否有递增键,例如标识键?它是聚集索引吗?如果是这样,跟踪最后一个关键点应该相当简单,并执行以下操作: SELECT TOP 1000000 * FROM [MyTable] WHERE [Id] > @LastId ORDER BY [Id] 另外-一定要用类

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

另外,我正在使用SQL Server。

是否有递增键,例如标识键?它是聚集索引吗?如果是这样,跟踪最后一个关键点应该相当简单,并执行以下操作:

SELECT TOP 1000000 *
FROM [MyTable]
WHERE [Id] > @LastId
ORDER BY [Id]
另外-一定要用类似于
ExecuteReader
的东西来阅读,这样就不会缓冲太多的行


当然,除了几千行之外,您还可以接受偶尔的往返,一次请求(比如)10000行。我不认为这会降低实际效率(几毫秒左右)。

我没有身份密钥。如果我这样做,生活就会简单。也许我只需要在dang表中添加一个标识键。