【发布时间】:2019-02-04 13:27:30
【问题描述】:
我正在尝试使用 .NET Core 中的 SqlBulkCopy 向开发实例 Azure SQL 数据库批量插入几百万行。
我已禁用连接字符串超时和 BulkCopyTimeout(将它们都设置为 0),但我仍然超时。
现在这不是一个高级机器(它是一个开发环境),这个过程很容易将 DTU 最大化...但是我对 DTU max 应该如何工作的理解是它是一种节流机制,而不是中止机制。无限超时,我希望这个过程需要一段时间,但最终会完成。相反,我看到的是这个过程开始......上传一堆行......然后在奇怪的时间超时:2:38、4:20......没有韵律或理由。
这让我觉得这是某种传输错误,但我显然得到了 TimeoutException。
根据Bulk insert is not working properly in Azure SQL Server 中的建议,我也尝试将批次做得非常小,但这似乎也没有任何作用。
谁能解释这里发生了什么,以及如何解决它?这阻碍了高知名度项目的开发,我不想告诉人们我可以让它在我的笔记本电脑的 SQL Server Express 上运行,但不能在 Azure DB 上运行。
【问题讨论】:
-
默认超时时间为 30 秒。不要归零。大于 30 秒。
-
我会,最终......现在,我只是试图定位问题。当它不应该超时时,我正在为超时而挠头。
-
我不确定设置为零是否真的会使超时无限。为什么不尝试一个非常大的超时时间,看看它是否有效。
-
#%$#^%# 我突然不能再重现这个了。这个问题自上周四以来就存在,现在它只是......工作。没有代码更改。叹。我想知道我们的 SAP 实例中是否有问题。
-
这是一只黑森虫。我通过查看为您修复了它!
标签: c# azure .net-core azure-sql-database sqlbulkcopy