gpt4 book ai didi

sql-server - 如何优化具有 100000 条记录和 100 个并发用户的 SQL Server 数据导入

转载 作者:行者123 更新时间:2023-12-03 02:26:52 24 4
gpt4 key购买 nike

我正在使用使用 ASP.NET MVC 和 C# 的 Visual Studio Web 应用程序。我有一个包含超过 100000 条记录的 Excel 文件,需要导入到 SQL Server 2008 R2 中。

我已将 SqlBulkCopy 与 ado.net DataTable 结合使用,将数据复制到表 (Table1)。

然后验证和处理数据并标记有效/无效。

然后使用 Table1 将记录添加和更新到 3 个表(Table2Table3Table4)存储过程。

Table4 包含 2 个触发器,它正在使用游标来更新 Table4 和另一个表 (Table2) 内与其相关的几条记录。

测试时,在 Debug模式下从我的本地计算机获取 10000 条记录需要 1 分钟。

如果10个或者100个用户同时导入,是否支持?

是否有更好的流程来改进并支持许多并发用户?

我的电脑配置:

  • Windows 10 64 位
  • AMD FX QuardCore 3.6 GHz 处理器
  • 8GB 内存

  • Excel 文件包含 50 列

  • 批量复制需要 2 - 3 秒
  • 存储过程需要 30 秒到 2 分钟

当我用 5 个并发用户测试它时,成功执行了 2 或 3 个进程,并收到此错误:

Transaction (Process ID 66) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

最佳答案

看看并尝试一下 Zzz Project,您可以在几秒钟内批量插入一百万条记录。它支持 Entity Framework 、Dapper。 ZZZProject

关于sql-server - 如何优化具有 100000 条记录和 100 个并发用户的 SQL Server 数据导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45894445/

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