@ychyx: 我提到的类型转换是这个含义,你在txt中存放了一个表示数字:2034.12的字符串,很遗憾的是,数据库中对应字段的数据类型是浮点,那么在你的程序里你需要先读出字符串“2034.12”,然后再转换成浮点类型存入数据库。一般的情况下,这种应用都遵循如下流程:
1,从输入流读取一定大小的数据;
2,将读入的数据解析成标准格式;
3,插入数据库;
4,回到 1;
利用并行运算的优势,1,2,3可以并行执行,合理的分配为每一个阶段分配的线程数,可以找到一个最优的组合以发挥硬件的最大性能。其中每一个阶段又可以单独的优化,比如在1中,可以根据数据特点来制定如何读取数据,已经每次读取数据的大小;在2中,根据数据特点,采用最佳的标准化方式;在3中,可以采用SqlBulkCopy来简单的提高插入速度,当然批量插入多大,应该通过实际测试来调整,同时也要调整传输大小来适配。
代码的优化是无止尽,涉及到I/O操作时,尽可能的利用并行和IOCP可以提高CPU的利用率,让CPU把更多的精力的放在数据标准化上。