怎么一行一行的遍历数据库中的所有行?
0
如果一个数据表行数非常多,所以一次性读取所有数据行出来会导致内存消耗过大,有没有什么语句可以一次读取一行记录的方式遍历所有记录行而保持高效率.
我测试了
select top 1 * from
( select top 1900019 * from t_person order by id asc) a
order by id desc
语句,它每次都需要一次性读取所有N行数据出来,然后再返回指定行,档读取到190万行后, 读取时间已经接近0.5秒了.这个语句效率太低,所以请问在不知道主键ID的值时,有什么方法可以保持高效率地从数据库中一行一行的读取数据?
就像StreamReader类的方法ReadLine() 一行,它一次读取一行并提升流位置,所以每次读取一行的效率都是相近的,不会因为行数越多,而读取效率明显下降。所以请问数据库有类似这种读取方式的语句吗?
我测试了
select top 1 * from
( select top 1900019 * from t_person order by id asc) a
order by id desc
语句,它每次都需要一次性读取所有N行数据出来,然后再返回指定行,档读取到190万行后, 读取时间已经接近0.5秒了.这个语句效率太低,所以请问在不知道主键ID的值时,有什么方法可以保持高效率地从数据库中一行一行的读取数据?
就像StreamReader类的方法ReadLine() 一行,它一次读取一行并提升流位置,所以每次读取一行的效率都是相近的,不会因为行数越多,而读取效率明显下降。所以请问数据库有类似这种读取方式的语句吗?
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
3 个回复
悟 - 取是能力,舍是境界 2015-10-11 回答
赞同来自: 天善智能 、loader
郑大鹏 2015-10-11 回答
赞同来自:
老头子 - 专注是唯一的捷径 2015-10-11 回答
赞同来自: