我有文件夹,每天大约有 3000 个新的 csv 文件进入,每个文件包含 50 到 2000 行信息。
目前,有一个流程可以一次提取一个文件,一次提取每一行,然后将其发送到存储过程以将内容插入数据库。
这意味着在一天的过程中,在下一个 3000 个文件进入之前,它可能很难通过 3000 个文件!
我正在寻求改进这个过程并有以下想法
- 使用 C# 4.0 的新 Parallel 特性允许一次处理多个文件,仍然通过一行一行地传递到存储过程
- 创建一个新的临时数据库表,可以一次将文件中的所有行插入其中,然后对临时表中新添加的行调用存储过程。
- 将流程拆分为 2 个任务。一项工作是将文件中的数据读取到临时数据库表中,另一项工作是处理临时表中的行。
关于我如何看待这样做的任何其他想法?目前每个文件最多可能需要 20 秒,我真的很想大大提高性能。