日期:2014-05-16  浏览次数:21001 次

百万数据webservice的更新
数据库里有百万条数据,在某个时间点通过webservice更新其所有数据的某几个字段,在Winform中要怎么做才能比较快速地更新完所有数据。大神帮帮忙
------解决方案--------------------
这个跟webservice或Winform关系都不大 - 逐行更新数据库基本是不可行的。

主要是看你的数据库的性能,和更新命令的复杂程度。
------解决方案--------------------
把更新信息集合(可以是文件形式)发送到远程后,再由远程程序去解析。这样web service会少了好多次交互,也节省了开销。
------解决方案--------------------
引用:
Quote: 引用:

把更新信息集合(可以是文件形式)发送到远程后,再由远程程序去解析。这样web service会少了好多次交互,也节省了开销。

web service是第三方的,不可修改

那么没办法,数据分批,然后开多个线程,不停的调用web service接口。
------解决方案--------------------
那还怎么办,开线程跑呗 ;    “webservice每次只能返回一行数据的值,通过webservice更新其所有数据的某几个字段”  ws只返回了一条,你程序为什么更新百万条?  关系是一对百万?
------解决方案--------------------
我现在担心,那webservice能不能吃得消你这百万数据的调用
------解决方案--------------------
我勒个去,看着需求,貌似是数据库设计就出问题了吧?

看你这样子,貌似是从一个web service去更新?
有百万种可能么?
可以试试把service返回的数据缓存起来.

------解决方案--------------------
引用:
Quote: 引用:

我勒个去,看着需求,貌似是数据库设计就出问题了吧?

看你这样子,貌似是从一个web service去更新?
有百万种可能么?
可以试试把service返回的数据缓存起来.

额。百万条数据,数据(例如商品)全是不重复的,在某个时间点,我要从web service上取得商品当天的价格,并更新到数据库,web service上又不提供批量,所以头疼了,只能多线程吗,时间在两三个小时内是允许的

能描述下webservice的输入和输出吗?
------解决方案--------------------
引用:
Quote: 引用:

我勒个去,看着需求,貌似是数据库设计就出问题了吧?

看你这样子,貌似是从一个web service去更新?
有百万种可能么?
可以试试把service返回的数据缓存起来.

额。百万条数据,数据(例如商品)全是不重复的,在某个时间点,我要从web service上取得商品当天的价格,并更新到数据库,web service上又不提供批量,所以头疼了,只能多线程吗,时间在两三个小时内是允许的

可能也不会有问题,之前我做过一个项目,对文件进行转换格式然后传输到Linux服务器上,由于夸平台,所以也采用了web service的方案,那项目最后还验收了。项目现场准备了10万份文件,反馈是:跑了一个晚上到第二天下午才跑完,全部上传正确。没有断开过。
------解决方案--------------------
如果数据更新量比较大,应该建立新的表格,导入数据,替换表格。