gpt4 book ai didi

c# - SqlBulkCopy 在 Azure Sql 和 C# 上*非常*慢

转载 作者:行者123 更新时间:2023-11-30 18:15:56 25 4
gpt4 key购买 nike

我正在使用 SqlBulkCopy 和 FastMember 将记录插入到 SQL 中

在本地,我可以在大约 2 秒内插入 100k 条记录。当我在 Azure Web 应用程序 webjob 和 Azure Sql 数据库上运行此命令时,需要 10 多分钟并且事务超时。表定义相同,表中的数据量相似等。没有锁,只是速度慢。当我在本地运行它并尝试写入 Azure Sql 数据库时,也需要超过 10 分钟。

实际的调用非常简单:

using(var bulkCopy = new SqlBulkCopy(connection){DestinationTableName="Table")
using(var reader = ObjectReader.Create(entities, columnList)
{
await bulkCopy.WriteToServerAsync(reader).ConfigureAwait(false);
}

我尝试使用 TransactionScope(Suppress) 删除事务,但没有什么区别。

有人可以帮助我知道我犯了什么愚蠢的错误,或者给我一些关于如何诊断这个错误的提示吗?真是越来越令人沮丧了!时间差异是如此之大,以至于我确信我错过了一些基本的东西。

最佳答案

嗯。我删除了所有索引,这产生了一些影响,但批处理仍然在 10 分钟时超时。我删除了外部环境事务范围(而不是使用 TransactionScope.Suppress),突然间时间看起来又“正常”了。插入大约需要 50 秒,并且在运行时已经接近最大化 DTU,而之前只达到了 20% 左右。

我仍然不知道为什么它可以在 2 秒内通过环境事务在本地工作,但它必须是一个可以记录体验的东西

感谢所有回答的人 - 至少为我指明了一个好的学习方向!

关于c# - SqlBulkCopy 在 Azure Sql 和 C# 上*非常*慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47366225/

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