如何使用c#高效地在数据库中写入数据?
我的windows应用程序正在读取文本文件并将其插入数据库。问题是文本文件非常大(至少对于我们的低端机器而言)。它有10万行,将其写入数据库需要时间 你们能建议我如何有效地读写数据,这样就不会占用机器内存吗? 仅供参考。。。 列分隔符:“|” 行分隔符:换行符 它大约有10列。。(它有客户的信息…如名字、姓氏、地址、电话、电子邮件等)如何使用c#高效地在数据库中写入数据?,c#,database,performance,C#,Database,Performance,我的windows应用程序正在读取文本文件并将其插入数据库。问题是文本文件非常大(至少对于我们的低端机器而言)。它有10万行,将其写入数据库需要时间 你们能建议我如何有效地读写数据,这样就不会占用机器内存吗? 仅供参考。。。 列分隔符:“|” 行分隔符:换行符 它大约有10列。。(它有客户的信息…如名字、姓氏、地址、电话、电子邮件等) 考虑到……我被限制使用BULK CMD 您没有说您使用的是哪种数据库,但如果是SQL Server,那么您应该查看批量插入命令或BCP实用程序。鉴于绝对没有机会从
考虑到……我被限制使用BULK CMD 您没有说您使用的是哪种数据库,但如果是SQL Server,那么您应该查看
批量插入
命令或BCP实用程序。鉴于绝对没有机会从安全人员那里获得帮助并使用批量命令,我将采取以下方法:
这不是我喜欢的选项,但有时它可能会节省内存。它实际上是在“占用”内存吗?还是运行缓慢?或者两者都有?(它们通常是两个离散的问题)@kirk。我都相信。但是机器也是低端的-celeron。如果你在文件中进行流式传输,没有理由占用内存。嗨,这是另一个问题。之前我使用SP使用大容量插入…问题是,由于安全原因,现在我无法在数据库服务器上转储文本文件。。整个计划是读取文本文件并将其写入临时表,然后调用我现有的SP,SP最终将使用我们的业务将其写入数据库logics@Crawling-也许您可以说服安全人员允许数据库服务器访问可用于批量加载数据的网络共享。这(可能)比单个插入要快得多。谁说这个文件可以放在内存中?试图使其适合可能会导致程序崩溃或由于交换而陷入困境。@Steven Sudit-这是一个很好的观点!然后,方法是将文件分块,使其在“低端”机器上工作。我面临的唯一问题是读取文本文件。如果我立即读取它,则在低端机器上会出现问题。建议我在这里做什么?说来话长。我的应用程序在web服务器上…作为文件监视程序工作…文件进入…读取并检查文件的完整性,调用存储过程并传递ftp、文件位置信息。。。现在存储过程返回到Web服务器…使用ftp调用获取文件…并将文件写回Db服务器,然后执行大容量插入等操作。。。所以现在的问题是SP使用的是windows FTP…而不是SSL。由于安全原因…现在SP的FTP调用无法完成。所以我不能在DB服务器上做很多事情。