Массовая вставка или BCP в Azure SQL Server - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь загрузить данные на SQL-сервер Azure, используя BULK Insert и BCP.Я могу загрузить данные в свою таблицу без каких-либо проблем, но производительность загрузки является проблемой в моем случае.BCP в большинстве случаев быстрее, чем BULK Insert.

BCP

Загрузка данных из UNIX в базу данных

BULK INSERT

Загрузка данных в Azure SQLСервер через хранилище больших двоичных объектов

Я хотел бы узнать, как повысить производительность BULK Insert, кроме добавления TABLOCK и удаления / повторного создания индекса.Удаление и воссоздание индекса невозможно из-за дополнительных нагрузок.

Какие параметры нужно настроить для улучшения производительности BULK INSERT?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019
  1. BCP - это служебная программа: bcp.exe.
  2. BULK INSERT - это инструкция Transact-SQL.

bcp.exe использует BULK INSERT для своей работы,

BCP и BULK INSERT на самом деле разные реализации.Логически они эквивалентны или, по крайней мере, должны быть.BCP имеет меньше усилий по анализу и затрат, чем BULK INSERT.Они почти одинаковы и дают почти одинаковую производительность.

Если вы хотите проверить или сравнить их производительность, они должны работать в одной системе и выполнять одну и ту же операцию: загрузка файла данных в Azure SQL Server через хранилище больших двоичных объектов или загрузка данныхфайл в SQL-сервер Azure.В противном случае вы можете получить неверный результат.

Azure SQL Server конкретно не описывает, как повысить производительность BULK INSERT.Но я думаю, что если мы будем следовать документу BULK INSERT (Transact-SQL) , это может не вызвать проблем с производительностью.

Надеюсь, это поможет.

0 голосов
/ 23 февраля 2019

Пакетные звонки в удаленную службу - это хорошо известная стратегия повышения производительности и масштабируемости.Существуют фиксированные затраты на обработку любых взаимодействий с удаленной службой, таких как сериализация, передача по сети и десериализация.Объединение множества отдельных транзакций в одну партию минимизирует эти затраты.

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

...