首页 新闻 会员 周边 捐助

从海量数据中提出N条,并更新其状态

0
悬赏园豆:20 [待解决问题]

各位老师好:

 

   现在遇到一个问题想请教各位,请给以指点,谢谢!

案例:

数据库表中有大量数据(数以上千万计),我想每次从此表中提取N(大于100条)条数据,并在表中更新提取到的N条数据状态,请问有什么好的解决方案?通过游标可以实现,但性能会不会太低?

请大家给出好的解决方案,谢谢各位!

 

补充:不止一台机器去提取,可能会有几台机器同时去提取。

 

SQLSERVER 2005数据库

问题补充:

提取的时候还要更改提取到的记录状态,大家认真考虑一下,谢谢

风也无奈的主页 风也无奈 | 初学一级 | 园豆:22
提问于:2013-02-04 15:19
< >
分享
所有回答(6)
0

嗯,如果有索引的话,

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-02-04 15:28
0

要提高性能的话,合适的建立索引是有必要的,同时你这种情况,可以考虑编写分页存储过程,每次取一部分数据,效率会更高!

小李北漂 | 园豆:176 (初学一级) | 2013-02-04 21:55
0

你每次只是取N条数据 ,在数据库里做分页要加上索引,在页面上用DataTable接收、处理和更新(更新的时候加上事务)你的数据

li-peng | 园豆:954 (小虾三级) | 2013-02-16 10:20
0

 

游标?你搞笑的把。

使用行版本或时间戳(rowversion,timetemp)。然后Updata top N ,最后Select Deleted 表(因为Updata其实是Delete+Add, selected added表也行)。

当然最好有主键,或者要排序的行上有索引。

 

luofer | 园豆:468 (菜鸟二级) | 2013-02-21 17:15
0

上千万计最好就是分库分表,建立关键索引,索引不要一般不要5、6个。 存储过程读取分页数据。 这样子就差不多了

刘蔡涛 | 园豆:221 (菜鸟二级) | 2013-03-14 01:28
0

模拟成一条一条更新就行了啊.  也就100来次

dearz | 园豆:588 (小虾三级) | 2013-11-01 18:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册