如何使用c#有效地在数据库中写入数据?

时间:2010-09-14 15:55:25

标签: c# database performance

我的Windows应用正在读取文本文件并将其插入数据库。问题是文本文件非常大(至少对于我们的低端机器而言)。它有10万行,将它写入数据库需要时间。

你们可以建议我应该如何有效地读取和写入数据,以免它占用机器内存? FYI ... 列分隔符:'|' 行分隔符:NewLine

它有大约10列..(它有客户信息......如名字,姓氏,地址,电话,电子邮件等。)

考虑到......我受限于使用BULK CMD。

3 个答案:

答案 0 :(得分:3)

您没有说明您正在使用哪种数据库,但如果它是SQL Server,那么您应该查看BULK INSERT命令或BCP实用程序。

答案 1 :(得分:0)

鉴于绝对没有机会从您的安全人员那里获得帮助并使用BULK命令,我将采取以下方法:

  1. 确保在插入数据库之前先读取整个文本文件。从而减少了I / O.

  2. 检查目标表上的索引。您是否可以插入没有索引或依赖项的临时表中,以便单个插入快速?

  3. 插入后是否需要立即显示此数据?如果没有,那么你可以让一个预定的作业从上面的步骤2中的临时表中读取并插入目标表(具有索引,外键等)。

答案 2 :(得分:0)

您是否可以register自定义程序集进入Sql Server? (我假设它是sql server,因为你已经说过你之前使用过批量插入)。

你可以调用你的程序集来执行(主要)你需要的任何东西,例如从某个服务(或任何你的选项)获取文件,解析并直接插入表中。

这不是我喜欢的选项,但它有时可能是一个保护程序。