查询返回大批量数据时怎样节省资源?

bluemiles 2002-06-27 01:08:34
10万条记录的表,select返回所有记录,占用大量系统资源,现欲使用分页式查询,应该怎么实现?
...全文
32 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ching11 2002-06-27
  • 打赏
  • 举报
回复
pb子带的例子里有一个很好的解决办法
CDINnet 2002-06-27
  • 打赏
  • 举报
回复
如果你用前台程序就很容易实现了。
如果想用SQL Server自己控制的话,(假设表中有一个主键ID叫做“ID”):
1。建立一个临时表,只有一个字段“MaxID”
2。第一次读取前1000条记录,例如
select top 1000 * from tablename ...
3。然后读取该1000条记录中的最大ID号,并将它存储到变量或者临时表。
4。接着读取后1000条记录:
select top 1000 * from tablename where ID > maxID ...

你可以将这些语句写成存储过程,存储过程的输入参数就是上次读取的最后的ID号(MaxID)。

这样你的前台程序就可以通过存储过程任意调用其中的一部分记录。
至于一次返回多少条记录,可以根据你电脑的配置,一般128的内存,一次返回1000条记录比较适当。

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧