С большей вероятностью вы получите более высокую производительность, если использовать опцию Table or view - fast load
, а не команду SQL.По умолчанию при использовании команды SQL не будут использоваться те же функции, что и у опции быстрой загрузки.При использовании быстрой загрузки это будет работать как BULK INSERT
.Этот параметр также получает блокировки страниц Exclusive (X
) и таблиц Intent Exclusive (IX
), в то время как параметр SQL Command будет принимать блокировки Shared (S
) и Schema Stability (Sch-S
) только для соответствующих объектов.,Подтвердить это можно, просмотрев эти блокировки либо через sys.dm_tran_locks
, либо через событие расширения, например, событие lock_acquired
.Если вы используете расширенное событие, чтобы сделать вашу транзакцию проще для распознавания, при этом установите свойство Application Name
в строке подключения и посмотрите на это.Блокировки таблицы X
не позволят другим пользователям получить доступ к таблице во время этой операции, и потенциальная блокировка - это то, что вы захотите взвесить при рассмотрении обоих вариантов.
Если ваше назначение - это таблица SQL Server илиview, рекомендуется назначение SQL Server.Однако этот параметр предназначен только для загрузки в локальный пункт назначения, и это ограничение необходимо учитывать при планировании долгосрочной разработки.Таким образом, если текущим пунктом назначения является локальный, но через несколько лет это может измениться, тогда OLE DB Destination будет лучшим вариантом.Подобно опции быстрой загрузки в пункте назначения OLE DB, здесь будут использоваться возможности BULK INSERT
, однако у пунктов назначения SQL Server есть преимущество применения преобразований к данным столбца перед загрузкой таблицы назначения.Назначение SQL Server может избежать блокировки таблицы назначения OLE DB, если для BulkInsertTabLock
установлено значение false.Я обнаружил, что использование SQL Server Destination имеет тенденцию работать лучше, чем OLE DB Destination, однако вы должны проверить это с помощью тестовой среды, которая специально имитирует, когда процесс будет выполнен, чтобы оценить результаты самостоятельно.Ссылка MSDN для типов адресатов приведена ниже.
Назначение OLE DB
Назначение SQL Server