gpt4 book ai didi

.net - .net 中长时间运行的数据库操作

转载 作者:行者123 更新时间:2023-12-02 08:43:07 24 4
gpt4 key购买 nike

我有一个带分隔符的文件,用于通过 .net 应用程序在 sql server 表中插入/更新记录。该文件有大约 80000 条记录,每天处理一次。我的问题:在我旋转 80000 行中的每一行时保持与数据库的连接打开是否安全甚至明智,还是我应该关闭连接并在循环的每次迭代中重新打开?这本身听起来很麻烦。但是,我担心长时间保持打开的连接,持有锁并不必要地耗尽内存。什么是更可扩展、更安全和更明智的方式来做到这一点?

最佳答案

首先,不,你不应该每一行都打开/关闭连接。对于 80,000 行,这将花费很长时间并且只会增加开销。您可以考虑对行进行批处理(例如每 10-500 行重置一次连接)。幸运的是,有一个更好的选择:

其次,从 .Net 应用程序向数据库中插入/更新那么多行的正确方法是使用 SQLBulkCopy methods ,而不是 INSERT 或 UPDATE 命令。您应该使用 SQLBulkCopy 将数据行加载到保留/暂存表中,然后使用 SQL 存储过程对实际表执行插入/更新,整体。

如果您担心 SQLBulkCopy 的持续负载,它有内置的批处理选项。

使用这种技术,初始数据上传应该至少快 5 倍,而实际的表插入/更新应该只需要几秒钟。

关于.net - .net 中长时间运行的数据库操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14819328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com