我在Microsoft SQL Server 2008 R2中有一个包含3亿行的表。在日期列[DataDate]
上有一个聚集索引,这意味着整个表由日期列排序。
如何将该表中的数据以10000行块的形式流式传输到.NET应用程序中?
环境:
使用C#。
必须能够随时暂停数据流,以允许客户端处理行。
不幸的是,不能使用select * from
,因为这会选择整个表(其50GB-无法容纳在内存中)。
最佳答案
您可以运行SELECT * FROM
,然后在SqlDataReader
中循环遍历结果。
这样一来,一次加载到内存中永远不会超过一行。它将在您调用Read()
时加载每一行。