C#循环计算出数据写入文本或数据库时如何提高效率?

要写这样一段代码:按行读取文本文件里的每一行,进行运算,然后写入数据库或文本文件,我现在是这样写的,
do
{按要求读取
运算
写入库
}
where(判断读取的是否为空,即:是否已读完)

现在运行效率很低,写到数据库一小时才10万次,写到文本8000次/16秒,
好像保存操作花费了太多时间

我想请教大家,如何实现运算后先缓存到内存里,到一定条数时再一起存入文本或数据库?(要保存的信息:string 原值 string 计算后的值)
DataTable,
有详细的资料么,比如示例代码,编程我菜鸟,只懂数据库.

利用SqlBulkCopy进行批量写入,大数据量效果明显。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-19
一次加载所有文本内容到内存中,然后定义一个List,拼接插入语句,将插入语句放到集合中,然后再一次性的执行插入。
第2个回答  2010-06-19
随便找个集合类就能用啊,比如List甚至DataTable,然后

do
{按要求读取
运算
结果写入List或DataTable
检查List或dataTable的计数,大于某个值时一次性写入
}
where(判断读取的是否为空,即:是否已读完)
第3个回答  2010-06-19
文本用Buffer

数据库共享Connection并且不要一条一写,可以积累50条写一次

程序上可以使用多线程提高执行数量
第4个回答  2010-06-22
三楼说了,SqlBulkCopy。楼主可以看看这个特性。很有用。设置也很方便。

C#循环计算出数据写入文本或数据库时如何提高效率?
利用SqlBulkCopy进行批量写入,大数据量效果明显。

C#循环计算出数据写入文本或数据库时如何提高效率?(缓存到一定条数后...
Cache吧,如果你文本读入后文件本身不被改变的话,你可以一次性读取出来放进hashtable 中再对hashtable进行处理,再然后写入数据库。读取一行就给行号,和值存储进hashtable里面,再作处理。

...万行数据,读出来然后存到数据库,怎么提高读取效率和存储效率_百度知 ...
思路:可以用流来读取,并且每次读取二十条数据,存入缓存中buff,然后把这二十条数据清空,再读后面的数据以此类推,读完之后把缓存中的数据,一并写入到数据库中,你也可以在读取的时候把数据设大一点

C#做批量入库怎么做效率搞
如果需要用循环时,不要在循环里面进行数据库的连接和断开,把连接放在循环前,断开放在循环后,整个过程只需要一次连接和断开,效率就会有很大提高(PS:数据库连接和断开比较费时)

c#向数据库插入大量数据时如何解决速度慢的问题
批量导入数据,切记用循环去逐条插入,这样即使再快,上万条十万条也就速度很慢了

C#开发的CE程序在把大量数据写入远程数据库用什么方法比较快?
在ce里面处理会很慢,建议你在服务上写一个webservice,ce程序调用webservice来进行插入。调用的时候,将数据以dataset的方式传给服务器。

C#怎样提高数据插入效率
要提交插入效率,是有很多数据么。可以使用conn.Open();\/\/ 插入所有conn.Close();即,执行一次数据库连接,打开操作,至于事务和存储过程都是一样的效果,只是有个commit,rollback操作,即,数据全部写入成功,然后再真正提交,或者返回原始状态。\/\/ 事务。使用con的BeginTransaction赋值给com的Transaction...

C#如何在海量数据下的高效读取写入MySQL
主要开发语言是C#,数据库使用的是MySQL。最常见的操作便是 select 读取数据,然后在C#中对数据进行处理, 完毕后再插入数据库中。 简而言之就 select -> process -> insert三个步骤。 对于数据量小的情况下(百万级别 or 几百兆)可能最多1个小时就处理完了。但是对于千万级数据可能几天,甚至更多...

C#软件频繁读数据库,很慢,如何优化
这需要根据导致运行速度不高的原因来考虑。如果是因为数据库的关系,可以将不经常变化的却经常需要用到的数据在第一次读出来的时候保存到内存中,以后就不用再去读取了。除此以外就是数据库连接的优化了,比如做好索引、分页读取等。

c# 如何提高大数据量查询速度
首先要优化查询语句,用不到的数据列尽量不要查。然后是优化数据库,比如多建几个索引,序列化,应用存储过程等等。最后是不要反复查数据库,会太慢,把查出的数据放到 XML中或是DataTable中,以后再用的时候直接到XML中去查,这样会省出大量的时间。。。

相似回答