当前位置: 首页 > 知识库问答 >
问题:

Azure SQL Server中的大容量插入或BCP

林亦
2023-03-14

我正在尝试使用大容量插入和BCP将数据加载到Azure SQL server。我能够将数据加载到我的表中,没有任何问题,但在我的情况下,加载性能是个问题。在大多数情况下,BCP比批量插入更快。

BCP

将数据从UNIX加载到数据库

批量插入

通过BLOB存储将数据加载到AzureSQL服务器

我想知道除了添加TABLOCK和drop/recreate index之外,如何提高批量插入性能。由于增量加载,无法删除并重新创建索引。

为了提高BULK INSERT性能,需要调整的所有参数是什么?

共有2个答案

邢璞
2023-03-14
  1. BCP是一个实用程序:BCP。exe

bcp。exe使用大容量插入来完成其工作。

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

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

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

希望这能有所帮助。

訾朗
2023-03-14

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

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-use-batching-to-improve-performance#why-批处理对sql数据库很重要吗

 类似资料:
  • 我想在我的sql-server数据库中插入。txt文件数据。我在.txt文件中使用和不使用PK-Variable时都出现了错误。我的疑问: 使用 从“C:\user\test.txt”大容量插入db.schema.table(FIELDTERMINATOR=';')去吧 null null

  • 就像有人说的第二种方式更慢,但我不确定,那么哪种方式更好呢?不能使数据库崩溃。

  • 我正在使用大容量插入并得到以下错误: 注意:加载文件中的数据不超过配置的列长度 从'C:\temp\dataload\load_file.txt'大容量插入load_data(firstrow=1,fieldterminator='0x09',rowterminator='\n',MAXERRORS=0,ERRORFILE='C:\temp\dataload\load_file') Msg 486

  • 问题内容: 我正在考虑使用Redis的协议进行批量插入,如下所述:http : //redis.io/topics/mass-insert 在我忙于编写代码来处理此问题之前,我只是想确保自己清楚什么是Redis要求进行此工作。 上面的链接建议使用大容量插入调用SET操作[SET myKey Value myValue],我需要创建一个命令,该命令可以在文件的多行或单个引号字符串中完成。 假设我不想

  • 我正在为SQL Server使用大容量插入命令,但由于某些原因,第一行没有插入。为什么不能从第一行插入数据?大容量插入是否需要标头作为默认设置,如何规避?如果我添加一个虚拟行,并将设置为,那么插入第一行就没有问题了,但我认为这不是一个好的解决方案。 示例数据:

  • 我正在尝试将文件插入到现有表中。现有的表有3列,这些列是ID(在表中分配)、学生号和组号。 在我的中,我有下面的格式,但是每次插入它时,我都会得到一个错误