我的Windows应用正在读取文本文件并将其插入数据库。问题是文本文件非常大(至少对于我们的低端机器而言)。它有10万行,将它写入数据库需要时间。
你们可以建议我应该如何有效地读取和写入数据,以免它占用机器内存? FYI ... 列分隔符:'|' 行分隔符:NewLine
它有大约10列..(它有客户信息......如名字,姓氏,地址,电话,电子邮件等。)
考虑到......我受限于使用BULK CMD。
答案 0 :(得分:3)
您没有说明您正在使用哪种数据库,但如果它是SQL Server,那么您应该查看BULK INSERT
命令或BCP实用程序。
答案 1 :(得分:0)
鉴于绝对没有机会从您的安全人员那里获得帮助并使用BULK命令,我将采取以下方法:
确保在插入数据库之前先读取整个文本文件。从而减少了I / O.
检查目标表上的索引。您是否可以插入没有索引或依赖项的临时表中,以便单个插入快速?
插入后是否需要立即显示此数据?如果没有,那么你可以让一个预定的作业从上面的步骤2中的临时表中读取并插入目标表(具有索引,外键等)。
答案 2 :(得分:0)
您是否可以register自定义程序集进入Sql Server? (我假设它是sql server,因为你已经说过你之前使用过批量插入)。
你可以调用你的程序集来执行(主要)你需要的任何东西,例如从某个服务(或任何你的选项)获取文件,解析并直接插入表中。
这不是我喜欢的选项,但它有时可能是一个保护程序。