Azure SQL Server中的批量插入或BCP

问题描述 投票:0回答:2

我正在尝试使用BULK Insert和BCP将数据加载到Azure SQL服务器中。我可以将数据加载到我的表中而不会出现任何问题,但在我的情况下,加载性能是个问题。 BCP在大多数情况下比BULK Insert更快。

BCP

将数据从UNIX加载到数据库

BULK INSERT

通过BLOB存储将数据加载到Azure SQL Server中

我想知道除了添加TABLOCK和drop / recreate索引之外如何改进BULK Insert性能。由于增量加载,无法删除和重新创建索引。

调整BULK INSERT性能的所有参数是什么?

azure azure-sql-database bulkinsert azure-sql-server
2个回答
0
投票

批量调用远程服务是众所周知的提高性能和可伸缩性的策略。与远程服务的任何交互都有固定的处理成本,例如序列化,网络传输和反序列化。将许多单独的交易打包成一个批次可以最大限度地降低这

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-use-batching-to-improve-performance#why-is-batching-important-for-sql-database


0
投票
  1. BCP是一个实用程序:bcp.exe。
  2. BULK INSERT是一个Transact-SQL语句。

bcp.exe使用BULK INSERT来完成它的工作。

BCP和BULK INSERT实际上是不同的实现。从逻辑上讲,它们是等价的,或者至少应该是等价的。与BULK INSERT相比,BCP的解析工作和成本更低。两者几乎相同,并提供几乎相同的性能。

如果要测试或比较它们的性能,它们必须在同一系统中并执行相同的操作:通过BLOB存储将数据文件加载到Azure SQL Server或将数据文件加载到Azure SQL服务器。否则,您可能会得到错误的结果。

Azure SQL Server没有具体说明如何提高BULK INSERT性能。但我认为如果我们遵循BULK INSERT (Transact-SQL)的文件,可能没有性能问题。

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.