2017-02-17 19 views
1

В SQL Server 2016 они ввели параллельные вставки в существующие таблицы. Не имея определенных функций в целевой таблице, SQL Server может вставлять данные в параллельные потоки.SSIS и параллельные вставки

Используя синтаксис INSERT [TableName] С (TABLOCK) ВЫБОР .....

Данные будут вставлены параллельно. Я видел большие улучшения, используя это. Что обычно займет около 10 минут, чтобы вставить 120 миллионов, использование этой новой функции займет всего около 30 секунд.

Как использовать эту новую настройку в SSIS? Я использую Visual Studio 2015 Enterprise и SQL Server 2016. Я знаю, что могу использовать «Execute SQL Task» и поместить что-то вроде этого, но мне интересно, как использовать это в потоке данных? Существует ли конкретный диспетчер подключений и настройка в целевом адаптере?

+0

См. Это: https://msdn.microsoft.com/en-us/library/bb522534.aspx –

+0

@KinchitDalwani Я просмотрел эту статью. Было очень информативно, что такое новые обновления, но я ничего не видел о параллельных вставках. Я просто пропустил это? – Craig

+0

Это может ответить на ваш вопрос: https://blogs.msdn.microsoft.com/sqlperf/2007/05/11/implement-parallel-execution-in-ssis/ –

ответ

0

в sql server 2016, нам нужно предоставить два условия использования параллелизма для наших операций вставки. Первый - уровень совместимости базы данных должен быть установлен на уровне 130. Поэтому перед запуском пакета sys проверьте уровень совместимости вашей базы данных.

SELECT name, compatibility_level FROM sys.databases 

второе состояние используется TABLOCK намек. В пакете SSIS вы можете выбрать подсказку TABLOCK с помощью пункта назначения OLEDB.

0

Нет, вы не можете использовать параллельные вставки в DTF.
Согласно Microsoft description параллельных вставок в SQL 2016, его можно использовать только при выполнении инструкции INSERT ... SELECT ... с некоторыми ограничениями. Поток данных готовит таблицу данных в память сервера SSIS, адреса OLEDB или ODBC попытаются загрузить его с помощью инструкций INSERT INSERT BULK`, которые не подлежат параллельным операциям.