首页 新闻 会员 周边 捐助

现在是串行从多个数据库取数据,时间慢,怎么并行取出数据?

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

怎么具体实现,给个想法,或者部分代码提示下?

小弟不胜感激,谢谢了。

         现在从10个数据库中通过一个业务规则取出一个一个数据中取出数据,然后汇总,这样子串行处理的时间效率太低,需要优化下,优化提示解决方案是同时从10个数据库,并行处理然后汇总,这样子时间上就有了很大提高。

Master.zhang的主页 Master.zhang | 初学一级 | 园豆:150
提问于:2011-09-08 21:38
< >
分享
所有回答(2)
0

1. 代码里面用多线程处理

2. 添加链接数据库,在一个存储过程里面实现

Devin Mao | 园豆:596 (小虾三级) | 2011-09-08 23:27
1

可以直接用。net4.0里面的并行处理,

类似这样的处理代码

List<Task<bool>> tskList =new List<Task<bool>>(10);
Parallel.ForEach
<string>(traderIds, traderId =>
{
var task
= Task.Factory.StartNew<bool>(() =>this.ProcessGetData();//获取每个数据库中的数据
tskList.Add(task);
});

Task.WaitAll(tskList.ToArray());
foreach (var tmp in tskList)
{
if (!tmp.Result)
{
return false;
}
//全部数据获取完成,汇总数据
}
bluesky4485 | 园豆:288 (菜鸟二级) | 2011-09-11 21:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册