c# 多线程同时写数据表速度变慢的问题

读一个文本文件,并进行计算,完成后将计算结果分别写入到10个(假定)表中。由于单个文本文件很大,约200M以上,计算需要比较长的时间,想通过多线程同时写10个表,以便节约... 读一个文本文件,并进行计算,完成后将计算结果分别写入到10个(假定)表中。
由于单个文本文件很大,约200M以上,计算需要比较长的时间,想通过多线程同时写10个表,以便节约时间。

以下是实现的方法:
数据读取: 循环读取文本文件,并将字段值放入到变量中

{
......
Thread thdTable1 = new Thread(into_table1);
thdTable1.Start();
thdTable1.Join();

Thread threadTable2= new Thread(into_table2);
thdTable2.Start();
thdTable2.Join();
......
}

//有10个线程同时运行

into_table1()
{
//计算...
//其间有通过reader判断重复等操作
//写入DB...
}

into_table2()
{
//计算...
//其间有通过reader判断重复等操作
//更新记录
}
.....

以上的方法比单线程执行还慢。
请大家帮忙看一下,以上方法存在的问题。

另外,如果有更好的实现方式,请不吝指教。
展开
 我来答
乜帅红0Q
2009-09-25 · TA获得超过906个赞
知道小有建树答主
回答量:693
采纳率:100%
帮助的人:468万
展开全部
一般涉及网络、磁盘读写的程序采用多线程,计算过程使用多线程尚不划算。高性能并行计算使用c#不行。如果计算量大建议使用编译性语言(推荐使用FORTURN)。 .net属于半编译性平台,效率较低。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rover1367
2009-09-25 · TA获得超过253个赞
知道小有建树答主
回答量:251
采纳率:0%
帮助的人:160万
展开全部
cpu的计算是有限的。你这样多线程反而加重了计算负担。
基本上没什么好办法。慢慢做吧
尽量优化下代码。还有数据库操作。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JimiXu
2009-09-25 · TA获得超过410个赞
知道小有建树答主
回答量:1010
采纳率:0%
帮助的人:0
展开全部
当然比单线程慢罗,单线程还一直在写,你多线程还要加上不断的切换线程的消耗。做同一件事情,多线程比单线程慢!
如果你是存入MSSQL的话,可以用个批量插入,效率会高很多。用里面提供的Bulk Insert
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
army_rose
2009-09-26 · TA获得超过436个赞
知道小有建树答主
回答量:541
采纳率:100%
帮助的人:216万
展开全部
建议使用存储过程。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式